Matlab 不在 for 循环中添加标记线

Matlab doesn't add marker line in for loop

我只是想绘制一个函数。我使用标记,我希望标记与线相连。但是,当我尝试在 for 循环中绘图时,Matlab 不会在标记之间创建线条。当我将 plot 命令置于 for 循环之外时,它起作用了。

这是一个简单的例子:

y=0:10:100;

for j=1:1:11

x(1,j)=1/(y(1,j)+1);

plot(y(1,j),x(1,j),'-s','MarkerFaceColor','g','MarkerSize',6)

hold on;

end

这行不通。


y=0:10:100;

for j=1:1:11

x(1,j)=1/(y(1,j)+1);

end

plot(y,x,'-s','MarkerFaceColor','g','MarkerSize',6)

这有效。


我想不通原因。

这是因为 plot 对矢量和标量的表现不同。

如果您给出 plot 标量(例如 plot(2,3)),它会绘制该点。但是,如果你给它向量(例如 plot([1 2 3], [1 4 9]) 那么它会绘制点并在它们之间画一条线。 要仅绘制点,您可以使用绘图选项,例如 plot([1 2 3], [1 4 9],'o').

要在循环中生成值时绘制点和线,我建议创建一个临时数组来存储循环中的点并在外部绘制它们。