if loop that is not working properly, row should be deleted based on several criterias but do not
Mostrar comentarios más antiguos
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?
Respuesta aceptada
Más respuestas (1)
Locks
el 13 de Abr. de 2013
0 votos
3 comentarios
Image Analyst
el 13 de Abr. de 2013
Editada: Image Analyst
el 13 de Abr. de 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
el 13 de Abr. de 2013
Image Analyst
el 13 de Abr. de 2013
Editada: Image Analyst
el 13 de Abr. de 2013
That's correct. If we're done, then mark my answer (not yours) as Accepted.
Categorías
Más información sobre Performance and Memory en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!