用MATLAB计算for循环中的一些正弦曲线,然后绘制它们

Mik*_*ael 2 matlab plot for-loop

我在MATLAB中执行以下操作,它运行良好.但是我需要计算20个正弦曲线而不是3个,然后将它们全部绘制出来.

x=sin(1*w*t)*(2/(pi*1));
y=sin(3*w*t)*(2/(pi*3));
z=sin(6*w*t)*(2/(pi*6));

plot(t,x,t,y,t,z)
Run Code Online (Sandbox Code Playgroud)

我认为应该可以制作一个for循环,然后绘制,但我不确定这是怎么做的,需要一些帮助.

Amr*_*mro 8

考虑这个例子:

w = 2;
t = (0:0.05:pi)';              %'# time axis
p = [1 3:3:12];                %# parameters you loop over

%# sinusoids over all possible parameters
x = bsxfun(@times, sin(w*bsxfun(@times,p,t)), (2./(pi*p)));
plot(t,x)                      %# plot all of them at one
legend( cellstr(num2str(p')) )
Run Code Online (Sandbox Code Playgroud)

替代文字

您只需将矢量更改p为您的特定值即可