2014-09-03 225 views
1

我想绘制下面的简单函数; $ y = A. * x $具有不同的A参数值,即A = 0,1,2,3都在同一个图上。我知道如何通过将x设置为一个空间向量来绘制简单的函数,即$ y = x $,从而定义x = linspace(0,10,100);我知道可以使用hold命令。Matlab,数字和for循环

我认为可以简单地使用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); 

回答

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是两个矢量xA的外积(与x已经移位到一个列向量)。 plot用于绘制100x4矩阵的列G

+0

+1用于解释“全部保留”和“保留”之间的区别。 – Nras 2014-09-03 10:53:29