MATLAB: How to delete elements from cell arrays

arrayscell array manipulationcell arrayscellsdelete element of cell arraysMATLABnested cell arraysstructures

Hi, I have a cell array(1×316) which contains 316 double
numeric arrays of various sizes like 74845×1,81032×1,55434×1 and so on.
I want to delete data values from each array cells which is greater than 140 and save it in a new cell array.
Format of my data looks like below:-
inst_speed_all_user_rome.mat(cell array)->speed_kmh(variable)->
1 2 3 … ….316(total 316 cells of arrays)
{74845×1 double},{81032×1 double},{87351×1 double},…..
sample of one array inside one of those 316 cells :
speed_kmh{1,1}-> {74845×1}= 44.889 28.445 0 156 33.46 ……..
Now, for above scenario,i need to delete the data 156(which is greater than 140 here) likewise i want to delete all data values > 140 from all arrays.
Initially i have stored cell array in s1 which is a 1×1 struct with one field ->speed_kmh of size 1×316.
Please help me out on this.
This is my code but i am stuck.
%%store cell array in struct s1
s1 =load('inst_speed_usr_rome.mat');
%%delete the values greater than 140 from cells
l = s1.speed_kmh{:};
to_delete = false(size(l));
for i=1:length(s1.speed_kmh)
if (s1.speed_kmh(i)>140)
to_delete(i) = true;
end
end
l(to_delete) = [];

Best Answer

Perhaps:
s1 = load('inst_speed_usr_rome.mat');
for k = 1:numel(s1.speed_kmh)
v = s1.speed_kmh{k};
s1.speed_kmh{k} = v(v <= 140);
end