# Plotting results of for loop on one graph

920 views (last 30 days)
Kelly Berry on 17 Sep 2015
Hi, I am relatively unexperienced with MATLAB, so bear with me! I created a for loop where two of the values in my matrix are functions of r, and then further operations are performed with each iteration of the matrix. The values are generated but then when I try to graph them, I get either an error or no graph. Here's my code:
for r=0:0.001:1.1;
M=[-1*(r.^2)+1.3 -0.3;-0.3, -0.3*(r.^2)+0.3];
f=[1;0];
z_1=M\f;
plot(r,z_1)
end
**As an added comment, if I try to express z_1 as z_1(r), or do this operation without the for loop, I get the error "Subscript indices must either be real positive integers or logicals" and I also don't know how to fix that...

Jon on 17 Sep 2015
Edited: Jon on 17 Sep 2015
plot(r,z_1,'.'); hold on
If you don't turn the "hold" to "on" then the figure is overwritten with each iteration.
You can also achieve this by adding these commands before the loop:
figure; hold on
ramin esmaeilzadeh on 15 Mar 2021
Realy thank you.

Jae Song on 17 Sep 2015
The z_1 matrix variable needs to have index; Please see the following code
x = 0:0.001:1.1;
s = size(x,2); %: get the array size
for i=1:s
r = x(i);
M=[-1*(r.^2)+1.3 -0.3;-0.3, -0.3*(r.^2)+0.3];
f=[1;0];
z_1(:,i)=M\f;
end
figure(1); plot(x,z_1(1,:));
figure(2); plot(x,z_1(2,:));
##### 2 CommentsShowHide 1 older comment
Nasir Mehmood on 25 Sep 2020
Hello dear Jae Song! I'm new to Matlab.
When I change
x = 0:0.001:1.1;
to
x = 0:0.01:1.1;
no plot is obtained. How to handle this issue?
Also can you describe a little about these lines:
z_1(:,i)=M\f;
and
figure(1); plot(x,z_1(1,:));

Hansa Prasad on 15 Feb 2019
T0=24;
m0=1;
eta=4.2;
T(1)=T0;
m(1)=m0;
C=216;
R=2;
Ta=26;
P=2;
Ts=21;
for t=1:300:1;
T(t+1)=(-1/(C*R))*(T(t)-Ta+m(t)*R*P*eta)+T(t);
plot(t,T(t))
end