MATLAB: How to filter data of a cell based on a column value

cell arraysfilter

Say I have a 100×100 cell.
I want to get all the rows where the 9th column is equal to 3, and all the rows where this isn't the case. These would be stored in two separate variables.
How would I do this?

Best Answer

I think the code will be like this:
% 100x100 sample cell array
C = num2cell(randi(10,100,100));
% Rows where the 9th column is equal to 3
idx = cellfun(@(x) isequal(x,3), C(:,9));
% Extract the target rows
C1 = C(idx,:);
% Others
C2 = C(~idx,:);