Question

Hi I have a cell array 2 x 1000. the first column holds numeric (double) values, the second holds a string. i would like the find all cells in the first column that are above a certain value, and bring back the corresponding cells in the second column. I have tried strcamp and various others but obviously they are for strings. I also tried doing

sortrows(mycell(1,:));

so i could pick the first 50 rows off or whateever, but this didn't seem to order the cell array. but really i would like to specifiy a threshold on the first column of the cell array.

How do I do this?

thanks.

Was it helpful?

Solution

If C is your cell array:

nums = [C{:,1}];

{:} converts C into a comma separated list (so {:,1} only converts the first column) and then [] collects the results into a normal array. After that it's simple:

index = nums > Threshold;
C(index,:)

OR in a one liner:

C([C{:,1}] > Threshold, :) %// Or C([C{:,1}] > Threshold, 2) as Luis said
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top