Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 为什么不';显示的点是什么?_Matlab_Debugging - Fatal编程技术网

Matlab 为什么不';显示的点是什么?

Matlab 为什么不';显示的点是什么?,matlab,debugging,Matlab,Debugging,为什么不显示点? 我试图在绘图顶部绘制四个不同的插值点,并使用不同的符号。我必须创建一个图例,该图例具有与点对应的形状 A=[1.52 -.7;.56 .4] l=eig(A); L=max(l); Xo=[1;0]; for k = 1:50 Xk=A*Xo; Xo=Xk; if k == 1 plot(Xo,Xk,'mo'); elseif k == 2 plot(Xo,Xk,'mx'); elseif k == 3 plot(Xo,Xk,'m+'); elseif k =

为什么不显示点? 我试图在绘图顶部绘制四个不同的插值点,并使用不同的符号。我必须创建一个图例,该图例具有与点对应的形状

A=[1.52 -.7;.56 .4]
l=eig(A);
L=max(l);
Xo=[1;0];

for k = 1:50
Xk=A*Xo;
Xo=Xk;
if k == 1
plot(Xo,Xk,'mo');
elseif k == 2
    plot(Xo,Xk,'mx');
elseif k == 3
    plot(Xo,Xk,'m+');
elseif k == 4
    plot(Xo,Xk,'m*');
elseif k == 5
    plot(Xo,Xk,'ms');
else
    plot(Xo,Xk);
end
end

默认情况下,每次调用
plot
Matlab时,都会清除图形并“重新开始”

如果您想在两件事物的顶部绘制两件事物,可以使用

hold on

这些是微妙的不同。按住,您将“一切保持不变”。下一个绘图将使用与上一个绘图相同的颜色,以此类推。使用
全部按住
,下一个绘图将使用不同的颜色(但不会擦除上一个绘图)

因此,您可以按如下方式更改代码:

A=[1.52 -.7;.56 .4]
l=eig(A);
L=max(l);
Xo=[1;0];

for k = 1:50
Xk=A*Xo;
Xo=Xk;
if k == 1
    plot(Xo,Xk,'mo');
elseif k == 2
    plot(Xo,Xk,'mx');
elseif k == 3
    plot(Xo,Xk,'m+');
elseif k == 4
    plot(Xo,Xk,'m*');
elseif k == 5
    plot(Xo,Xk,'ms');
else
    plot(Xo,Xk);
end

hold all; % <<<<< this is the extra line

end
A=[1.52-.7;.56.4]
l=eig(A);
L=最大值(L);
Xo=[1;0];
对于k=1:50
Xk=A*Xo;
Xo=Xk;
如果k==1
图(Xo,Xk,'mo');
elseif k==2
绘图(Xo,Xk,'mx');
elseif k==3
图(Xo,Xk,'m+');
elseif k==4
图(Xo,Xk,'m*');
elseif k==5
图(Xo,Xk,'ms');
其他的
图(Xo,Xk);
结束

全部保留;%您是否尝试过使用
等一下
?但我不确定您想在这里绘制什么。我相信,
稍等
会解决您的问题,但我建议您退后一步。每次迭代计算Xk,然后将xo设置为该值,并绘制两个值(现在相同)。这将始终是一条直线。请参阅有关如何高效更新循环中的绘图的问题:@Raab70-有趣的链接。我认为,由于OP希望用不同的标记(和相应的图例)绘制几个点,因此链接中的方法不适用于这种情况,但适合一般参考。。。。。6年后,我发现
hold-on
hold-all
=P之间存在显著差异,我想我总是手动设置颜色。
A=[1.52 -.7;.56 .4]
l=eig(A);
L=max(l);
Xo=[1;0];

for k = 1:50
Xk=A*Xo;
Xo=Xk;
if k == 1
    plot(Xo,Xk,'mo');
elseif k == 2
    plot(Xo,Xk,'mx');
elseif k == 3
    plot(Xo,Xk,'m+');
elseif k == 4
    plot(Xo,Xk,'m*');
elseif k == 5
    plot(Xo,Xk,'ms');
else
    plot(Xo,Xk);
end

hold all; % <<<<< this is the extra line

end