In a for loop, how do I combine rows when values are equal?
이전 댓글 표시
I'm having trouble with the syntax of a for loop. In a vector, A, rows sometimes repeat values in succession. What I'd like to do is take the mean of the repeating rows' values only if they are neighboring, and leave the repeating rows' values that have now been averaged into one row as NaNs. In other words, I also need the length of the vector to stay the same.
This is the beginning of something that may work with some edits, but I have full confidence that the Matlab community has a more elegant approach. Also, I have a suspicion that there are downsides to this code that I'm not anticipating.
for i=1:length(A)-1; % -1 is to avoid an out of bounds error when attempting to access one beyond the last index.
if A(i) + A(i+1) == A(i) * 2;
A(i)=mean(A(i:i+1));
A(i+1)=NaN;
end
end
How can this code be improved?
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Matrices and Arrays에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!