MATLAB Answers

Mal
0

Why does my plot not display when I use a nested loop?

Asked by Mal
on 28 May 2015
Latest activity Commented on by Mal
on 28 May 2015
I am trying to use the following code to iteratively plot various lines on a single graph:
hold on
for b=1:1:4
for a=0:4:16
c=a+24*b;
plot (a, c)
end
end
hold off
Why is my figure blank when I run it?

  0 Comments

Sign in to comment.

1 Answer

Answer by Michael Haderlein on 28 May 2015
Edited by Michael Haderlein on 28 May 2015
 Accepted Answer

If you want to get this as line plot, you'll need all values of a and c to be in one array each. If the example you have posted is the real equation, you should simply vectorize it and things become much easier:
b=1:1:4;
a=0:4:16;
[Am,Bm]=meshgrid(a,b);
Cm=Am+24*Bm;
plot(a,Cm)
If this was just sketching the problem and you cannot vectorize your function, you'll need to save all c values:
b=1:1:4;
a=0:4:16;
c=zeros(numel(a),numel(b));
for cntb=1:numel(b)
for cnta=1:numel(a)
c(cnta,cntb)=a(cnta)+24*b(cntb);
end
end
plot(a,c)

  1 Comment

Thank you! I get the plot I want by vectorizing the function.

Sign in to comment.