Removing rows based on numerical value

2 visualizzazioni (ultimi 30 giorni)
Dave
Dave il 15 Mag 2016
Modificato: dpb il 16 Mag 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.

Risposte (1)

dpb
dpb il 15 Mag 2016
Modificato: dpb il 16 Mag 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...

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by