How do I compare the result of the output of a loop with the previous output of the loop?
    조회 수: 4 (최근 30일)
  
       이전 댓글 표시
    
If I output data from a loop into a cell array such that each iteration of the is stored as an individual cell in a single cell array, how can I write a code where I compare the the ith term in the loop to the (i-1)th term? I want to compare the number of rows of each cell, e.g. 
for i = 1:5
    matrix = ones(i,2); % create some matrix - in my real code this would not be in ascending order, and some matrices would have the same number of rows
    matrixcell{i} = matrix; % create some cell array
    % Here I need to compare the number of rows
    if size(matrixcell{i})<size(matrixcell{i-1})
        disp('current result has less rows')
    elseif size(matrixcell{i})==size(matrixcell{i-1})
        disp('current result has same number of rows')
    else
        disp('current result has more rows')
    end
end
I understand that the reason this doesn't work is that matrixcell{i-1} doesn't exist for i=1, but this is the idea of the comparison I need. I don't need to compare the i=1 case to anything - this can just be printed or ignored. Does this require a while loop?
댓글 수: 0
채택된 답변
  Stephen23
      
      
 2018년 12월 7일
        Put your entire if... ifelse ... end inside another if:
if i>1
    if size(...)
        ...
    elseif size(...)
        ...
    end
end
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
				Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!