Problem to delete rows in my matrix
Ältere Kommentare anzeigen
Hi, I am a beginner in matlab and I try to delete rows from my matrix when two following values in my 3rd column are the same. I tried this :
for q=1:length(res)-1
if res(q,3)==res(q+1,3)
res(q,:) = [];
end
end
But I have the error message :
Index exceeds matrix dimensions.
Error in trackthebeads (line 8)
if res(q,3)==res(q+1,3)
I had 4020 values at the beginning, it managed to delete 36 but then it blocked I don't know why. Can you help me? Thanks, Aude
3 Kommentare
per isakson
am 21 Nov. 2016
and try
for q = length(res)-1 : -1 : 1
if res(q,3)==res(q+1,3)
res(q,:) = [];
end
end
Roger Stafford
am 21 Nov. 2016
Bearbeitet: Roger Stafford
am 21 Nov. 2016
@Per. I think this method might have the difficulty that a row might be deleted which might have provided a match in column 3 on the next step down, and that would abort another valid deletion. That is to say, there might be three successive equal elements in column 3 but only one row deletion as a result instead of two.
@Per Correction: On second thought I think your revised method actually does work properly. Forget the above paragraph.
Aude Rapet
am 21 Nov. 2016
Akzeptierte Antwort
Weitere Antworten (0)
Kategorien
Mehr zu Job and Task Creation finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!