how to make a comparison in a for loop. Problem on indexes

3 次查看(过去 30 天)
At the end of the for loop l want to compare the values of I(i) and I(j) look at the second for loop. here is the returned error :
??? Attempted to access I(2); index out of bounds because numel(I)=1.
Error in ==> eliminationphase at 143
if (I(i)==I(j)&&(j < i))
Look at the code below:
alpha= 10;
I=1;
for i=1:N
if (~ismember(num2str(i), num2str(F)))
while (C(i) < alpha)
for j=1:N
if ((i~=j) && (ismember(j, neighbour_n{i})))
C(i)=C(i)+C(j);
display(['la somme des cardinaux de ', num2str(i), ' is ', num2str(C(i))]);
I=I+1;
display(['The number of iteration of ', num2str(i), ' is ', num2str(I)]);
end
end
end
if (~ismember(num2str(i), num2str(F)))
display(['the value of the node: ', num2str(i), ' at the end of while is ; ', num2str(C(i))]);
end
end
end
% how to compare betwwen I(i) and l(j)?
% l need to retreive the all the values of I and compare between them and between thein indices
for i=1:N
for j=1:N
if (((~ismember(num2str(i), num2str(F)))&&(~ismember(num2str(i), num2str(F))))&&(i~=j))
if (I(i)==I(j)&&(j < i))
display(i);
end
if (I(i) >I(j))
display(i);
end
end
end
end
  4 个评论
Geoff Hayes
Geoff Hayes 2015-3-14
Why do you have the following condition in the inner for loop of your second loop block
if (((~ismember(num2str(i), num2str(F)))&&(~ismember(num2str(i), num2str(F))))&&(i~=j))
What is the intent behind this code?

请先登录,再进行评论。

回答(1 个)

mazari ahmed
mazari ahmed 2015-4-9
Finally you are right Geoff, it's working

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by