Ending an If Else loop

10 次查看(过去 30 天)
Qwerty1
Qwerty1 2018-10-30
重新打开: Star Strider 2018-10-30
I have a simple script like the one below.
for A=[0:5]
if A==2
B=0;
else B=1;
C=A+B
end
end
I want the script to calculate the value of C for every A, but at the moment the formula for C is within the 'else' part of the loop. Therefore when A=2, no value of C is calculated. I know that I can put the statement within the 'if' part of the loop, but this is a simplified version and I have a much more complex if else loop with a larger statement so want to know if there is a better way.
Thanks.

采纳的回答

madhan ravi
madhan ravi 2018-10-30
编辑:madhan ravi 2018-10-30
A=[0:5]
B=zeros(1,numel(A)) % preallocation for doors and efficiency
C=zeros(1,numel(A))
for I = 1:numel(A)
if A(I)==2
B(I)=0;
else
B(I)=1;
C(I)=A(I)+B(I)
end
end
  1 个评论
madhan ravi
madhan ravi 2018-10-30
编辑:madhan ravi 2018-10-30
Use preallocation for speed and efficiency, use I as an index in order to avoid overwriting

请先登录,再进行评论。

更多回答(0 个)

类别

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