Removing rows based on numerical value

2 views (last 30 days)
Dave
Dave on 15 May 2016
Edited: dpb on 16 May 2016
I would like to remove rows from a very large array based on a column that increments from 0.00 by tenths or hundreths to very large numbers. I only want to keep the rows that have zeros in the decimal places. I'm just not sure what MATLAB function / technique to use to pull only those rows.

Answers (1)

dpb
dpb on 15 May 2016
Edited: dpb on 16 May 2016
Presuming "...only want to keep the rows that have zeros in the decimal places" means the integer-valued locations, then lose those not matching--
x(mod(x(:,nCol),1)~=0),:)=[];
or, conversely, keep the wanted--
x=x(mod(x(:,nCol),1)==0),:);
where nCol is the column of interest in array x
Not sure if either has any speed advantage for larger arrays or not...

Products

Community Treasure Hunt

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

Start Hunting!