if loop that is not working properly, row should be deleted based on several criterias but do not
Show older comments
hi,
I have a matrix with 8 columns and I would like to delete those rows where the value of column 8 exceeds 1.1 or is below 0.9 and apply a similar criteria on column 5, here is the respective code:
while i < size(data8, 1)
i = i + 1 ;
if(data8(i,8)>1.1)
data8(i,:) = [];
elseif(data8(i,8)<0.9)
data8(i,:) = [];
elseif(data8(i,5)<5*1/365)
data8(i,:) = [];
elseif(data8(i,5)>120*1/365)
data8(i,:) = [];
end
end
although the code is running, I get in the resulting matrix values in column 8 that exceeds 1.1 and are below 0.9, whan do I need to change?
Accepted Answer
More Answers (1)
Locks
on 13 Apr 2013
0 votes
3 Comments
Image Analyst
on 13 Apr 2013
Edited: Image Analyst
on 13 Apr 2013
This should have been a comment to my answer. | means "or" while & means "and". It tells you which rows should be removed from the original array. You might have to have
rowsToDelete = rowsToDelete8 | rowsToDelete5
instead of
rowsToDelete = rowsToDelete8 & rowsToDelete5
depending on exactly what criteria you're after.
Locks
on 13 Apr 2013
Image Analyst
on 13 Apr 2013
Edited: Image Analyst
on 13 Apr 2013
That's correct. If we're done, then mark my answer (not yours) as Accepted.
Categories
Find more on Performance and Memory in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!