How do I compare the result of the output of a loop with the previous output of the loop?

4 views (last 30 days)
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?

Accepted Answer

Stephen23
Stephen23 on 7 Dec 2018
Put your entire if... ifelse ... end inside another if:
if i>1
if size(...)
...
elseif size(...)
...
end
end

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!