MATLAB中如何将一函数 离散的点 连成线?

2024年11月15日 11:04
有4个网友回答
网友(1):

clear all 

a=15;w=0.3;k1=0.778;k2=0.2;c1=5;c3=6;x=0.4;y=0.5;z=0.6;

for i=0:1:120

     x1=x;

     y1=y;

     z1=z;

     x=x1+k1*x1*(w*a-2*w*(1+c1)*x1-y1-w*z1);

     y=y1+k2*y1*((1-w)*a-x-2*(1-w)*(1+c1)*y1-(1-w)*z1);

     z=(a-x1-y1)/(2*(1+c3));

   line([i i+1],[x1 x]);

     hold on;

end

网友(2):

clear all
a=15;w=0.3;k1=0.778;k2=0.2;c1=5;c3=6;x=0.4;y=0.5;z=0.6;
for i=0:1:120
x1=x;
y1=y;
z1=z;
x=x1+k1*x1*(w*a-2*w*(1+c1)*x1-y1-w*z1);
y=y1+k2*y1*((1-w)*a-x-2*(1-w)*(1+c1)*y1-(1-w)*z1);
z=(a-x1-y1)/(2*(1+c3));
line([i i+1],[x1 x]);
hold on;
end

网友(3):

for前面加上
x_axis=[];
y_axis=[];
去掉for循环中的plot语句,在end 后 加上plot(x_axis,y_axis);

网友(4):

最好不用hold on重复绘图,而是对绘图数据进行加工处理,一次性绘图,如增加一个中间变量X,Y,如下:
clear all
a=15;w=0.3;k1=0.778;k2=0.2;c1=5;c3=6;x=0.4;y=0.5;z=0.6;X=[];Y=[];
for i=0:1:120
x1=x;
y1=y;
z1=z;
x=x1+k1*x1*(w*a-2*w*(1+c1)*x1-y1-w*z1);
y=y1+k2*y1*((1-w)*a-x-2*(1-w)*(1+c1)*y1-(1-w)*z1);
z=(a-x1-y1)/(2*(1+c3));
%plot(i,x1,'r-+');
%hold on;
X=[X;i];Y=[Y;x1];
end
plot(X,Y,'r-+');