我试图绘制以下简单函数; $ y = A. * x $具有不同的A参数值,即A = 0,1,2,3都在同一图上。我知道如何通过将x设置为linspace矢量来绘制简单函数,即$ y = x $,从而定义x = linspace(0,10,100);我知道可以使用hold命令。
我认为可以简单地使用for循环,但问题是获得一个图上所有排列的图,即我想要一个y = t,2 * t,3 * t,4 *的图。在同一个数字上。我的尝试如下:
x=linspace(0,10,100);
%Simple example
Y=x;
figure;
plot(Y);
%Extension
B=3;
F=B*x;
figure;
plot(F);
%Attempt a for loop
for A= [0,1,2,3]
G=A*x;
end
figure;
plot(G);
答案 0 :(得分:5)
这是我绘制你的for循环示例的方式:
figure;
hold all;
for A=[0,1,2,3]
G=A*x;
plot(G);
end
figure
创造了一个新的数字。 hold all
表示后续绘图将显示在同一图上(hold all
将为每个绘图使用不同的颜色,而不是hold on
)。然后我们在循环中绘制G
的每次迭代。
你也可以在没有循环的情况下完成。与Matlab中的大多数内容一样,删除循环应该可以提高性能。
figure;
A=[0,1,2,3];
G=x'*A;
plot(G);
G
是两个向量x
和A
(x
已转换为列向量)的外积。 plot
用于绘制100x4矩阵G
的列。