Plot命令不会显示任何东西

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),你会得到一个错误XY不具有相同的长度,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)