MATLAB: If-else within for loop

elsefor loopif statementMATLAB and Simulink Student Suite

clc
clear all
k=4;
a=13;
for i=1:10
c(i)=i*k;
b(i)=a+c(i);
end
for i=1:10
if 26<b<39
e=b+k;
else e=b/k;
end
end
disp(e)
disp(c)
disp(b)

Best Answer

% Vectorized version (efficient than a loop)
k=4;
a=13;
ii=1:10
c=ii*k;
b=a+c;
e=b/k;
e(b>=26 & b<59)=b(b>=26 & b<59)+k
disp(e)
disp(c)
disp(b)
% Loop version
k=4;
a=13;
c=zeros(1,10); % pre-allocate
b=c;
for ii=1:10
c(ii)=ii*k;
b(ii)=a+c(ii);
if (b(ii)>=26 && b(ii)<59) % proper usage
e(ii)=b(ii)+k;
else
e(ii)=b(ii)/k;
end
end
disp(e)
disp(c)
disp(b)
Related Question