Ending an If Else loop

7 views (last 30 days)
Qwerty1
Qwerty1 on 30 Oct 2018
Reopened: Star Strider on 30 Oct 2018
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.

Accepted Answer

madhan ravi
madhan ravi on 30 Oct 2018
Edited: madhan ravi on 30 Oct 2018
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 Comment
madhan ravi
madhan ravi on 30 Oct 2018
Edited: madhan ravi on 30 Oct 2018
Use preallocation for speed and efficiency, use I as an index in order to avoid overwriting

Sign in to comment.

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!