if loop that is not working properly, row should be deleted based on several criterias but do not
Afficher commentaires plus anciens
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?
Réponse acceptée
Plus de réponses (1)
Locks
le 13 Avr 2013
0 votes
3 commentaires
Image Analyst
le 13 Avr 2013
Modifié(e) : Image Analyst
le 13 Avr 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
le 13 Avr 2013
Image Analyst
le 13 Avr 2013
Modifié(e) : Image Analyst
le 13 Avr 2013
That's correct. If we're done, then mark my answer (not yours) as Accepted.
Catégories
En savoir plus sur Performance and Memory dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!