MATLAB: Row filtering and pre-allocate

row filtering

hi all,
here p is (1,3) vector,:
  1. how can I preallocate a.
  2. how can store each filtered rows in a seperate matrix.
Regards
for i=1:length(L);
a=p(p(:,3)==L(i),:);
end

Best Answer

  • a = cell(numel(L),1);
    for ii = 1:numel(L);
    a{ii} = p(p(:,3) == L(ii),:);
    end
    celldisp(a)
    %or
    a = num2cell(p(any(p(:,3) == L, 2), :),2)