Matlab,数字和循环

1 matlab

我试图绘制以下简单的函数; $ 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*t的图.相同的数字.我的尝试如下:

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);
Run Code Online (Sandbox Code Playgroud)

scl*_*e81 5

这是我如何绘制你的for循环示例:

figure;
hold all;
for A=[0,1,2,3] 
    G=A*x;
    plot(G);
end
Run Code Online (Sandbox Code Playgroud)

figure创造一个新的人物.hold all意味着后续的绘图将出现在同一个图上(hold all对于每个绘图将使用不同的颜色而不是hold on).然后我们绘制循环G内的每个迭代.

你也可以在没有循环的情况下完成.与Matlab中的大多数内容一样,删除循环应该可以提高性能.

figure;
A=[0,1,2,3];
G=x'*A;
plot(G);
Run Code Online (Sandbox Code Playgroud)

G是两个向量的外积xA(x已经转换成列向量).plot用于绘制100x4矩阵的列G.