为什么没有显示的点数?

时间:2014-04-30 19:16:23

标签: 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 == 4
    plot(Xo,Xk,'m*');
elseif k == 5
    plot(Xo,Xk,'ms');
else
    plot(Xo,Xk);
end
end

1 个答案:

答案 0 :(得分:2)

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

如果你想在彼此之上绘制两件事,你可以使用

hold on

hold all

这些略有不同。使用hold on,您可以保持“一切不变”。下一个绘图将使用与最后一个相同的颜色,等等。使用hold all,您的下一个绘图将是不同的颜色(但它不会删除以前的绘图)。

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

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

这实际上是非常低效的代码 - 但解决这个问题的最佳方法可能是另一个问题的主题。