# How to save specified data from a matrix?

5 views (last 30 days)
Lei on 27 Aug 2012
hello, everyone.
I am wondering how can I delete specified data from a data matrix. For example, if I have a matix like this:
m=rand(100,5);
How can I save a matrix that satisfy this : for each row, each element is smaller than a specified number such as 0.200.
I know I can use indice, eg. ind=find(m(:,2:5)< 0.2)
but I can't save it by using m1=m(ind,:)
I guess the problem is the number of rows is changing when I use m1=m(ind,:).
does anyone know how can i achieve this?
Thanks.

Walter Roberson on 27 Aug 2012
ind=find(m(:,2:5)< 0.2)
is not correct. You need
ind=find(all(m(:,2:5)< 0.2,2))
Lei on 27 Aug 2012
probaably ind=find(any(M(:,2:5)>54,2));

Babak on 27 Aug 2012
if your matrix m is 100 by 1, you can do this:
m(m<0.2)
gives you a new matrix that is smaller or equal size to the original matrix.
For a 100 by 5 m, I think you can write a for loop on the different columns of m,
a = m<.2;
for j=1:5
m(a(:,j)) % gives you the elemets of m(:,j) that are less than 0.2
end
Lei on 27 Aug 2012
hello Babak, Thx for your help,I tried your code. but it seems does not work.