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')
.
要在循环中生成值时绘制点和线,我建议创建一个临时数组来存储循环中的点并在外部绘制它们。
我只是想绘制一个函数。我使用标记,我希望标记与线相连。但是,当我尝试在 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')
.
要在循环中生成值时绘制点和线,我建议创建一个临时数组来存储循环中的点并在外部绘制它们。