Plot命令不会显示任何东西
问题描述:
我是Matlab新手,我试图为每个X值绘制Y函数。为此,我使用了下面的代码。图屏幕打开,但屏幕上没有任何东西。Plot命令不会显示任何东西
>> X = [0:0.001:0.04]
>> for i=1:40
Y = 6113 * cos(2*pi*200*X(i) + 1508);
end
>> plot(Y,X)
我也试过这个。
>> X = [0:0.001:0.04]
>> for i=1:40
Y = 6113 * cos(2*pi*200*X(i) + 1508);
>> plot(Y,X)
end
我该如何解决这个问题?谢谢,
答
首先第一件事情。
JollyRoger答案是正确的,但是,让我们看看你做错了什么。
您正在尝试绘制Y
vs X
。
plot(Y,X)
但是你X
是一个载体,而Y
是标量。另外,你应该反转命令X
是你的自变量
plot(X,Y)
那么你可以做什么,以使各项X
- 值Y如果矢量保持信息?您需要将它保存为每个条目:
for k=1:40
Y(k) = 6113 * cos(2*pi*200*X(k) + 1508);
end
首先变量Y
的是现在指数,并成为一个载体。正如你所看到的,我将你的索引变量改为k
,因为i
也是复数。
如果您想尝试绘制该plot(X,Y)
,你会得到一个错误X
和Y
不具有相同的长度,X
有更多的价值。所以,你需要适应绘图命令:
plot(X(1:40),Y)
如果你想Y
有值的相同数量的X
你必须做出for循环,只要你的载体X
,
for k=1:length(X)
Y(k) = 6113 * cos(2*pi*200*X(k) + 1508);
end
plot(X,Y)
最后要说明的是,在for循环中使用它们之前,尝试预先分配变量以改善代码执行时间。例如:
Y=zeros(size(X));
for k=1:length(X)
Y(k) = 6113 * cos(2*pi*200*X(k) + 1508);
end
plot(X,Y)
答
我刚刚发现如何做到这一点。我tryed下面的代码和它的工作:
>> Y = 6113 * cos(2*pi*200*X + 1508);
>> plot(Y,X)