Deleting rows in a matrix with condition on its column value

Hi there,
I have a text file with about 14 millions rows and 11 columns. On the 11th column, there are values that are really small.. and I want to get rid of the rows that their 11th column has a value that is smaller than 10^-(12).
I loaded the file into matlab and now it's stored in a variable as a matrix with 14 million rows and 11 columns.. and I wrote this code but it is so painfully slow that it takes it about 1 second per row.. so that's 150 days for the whole matrix.
that's my slow code:
for i = 1 : 13847014
if New_LongDataUn(i,11) < 10^-(12)
New_LongDataUn(i,:) = [];
end
end
Thanks for all the kind help you guys!

 Accepted Answer

New_LongDataUn(New_LongDataUn(:,11) < 1e-12,:) = [];

3 Comments

thank you! smooth and quick!!!!
do you happen to know how i can save this matrix as a data so i wouldn't have to do that every time?
If you mean into a mat file, then simply
save your_matfile_name New_LongDataUn

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!