Write out rows which have cell with specific value from large array in MATLAB

2 views (last 30 days)
I am reading in data from a large array (~50000 x 45). I am trying to extract rows from this which have their x_value (column 27) above a specific value (1.8 in this case).
I am able to write the array (p1) but each output row is the same, (the last row from the large array with x > 1.8)
Can anybody tell me how to write out this data properly?
Thanks
n = length(DAT);
bin = 1.8;
x_value = DAT(:,27);
row = sum(x_value > bin);
for s = 1:n;
if DAT(s,27) > bin
for r = 1:row;
p1(r,:) = DAT(s,:);
end
end
end

Answers (1)

Matt J
Matt J on 13 Mar 2013
Edited: Matt J on 13 Mar 2013
Make life easier on yourself with vectorized one-liners
p1=DAT(:,DAT(:,27) > bin);

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!