How do I compare the result of the output of a loop with the previous output of the loop?
1 次查看(过去 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!