绘图命令不显示任何内容

时间:2017-10-20 12:28:37

标签: matlab

我是Matlab的新手,我正在尝试为每个X值绘制Y函数。为此,我使用下面的代码。图屏幕打开但屏幕上没有任何内容。

>> 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

我该如何解决这个问题?谢谢,

2 个答案:

答案 0 :(得分:2)

首先要做的事情。

JollyRoger的回答是正确的,但是,让我们看看你做错了什么。

您正在尝试绘制Y vs X

plot(Y,X)

但是,X是一个向量,而Y是一个标量。此外,您应该反转命令,因为X是您的自变量

plot(X,Y)

那么你可以做些什么来让Y成为一个包含每个X - 值的信息的载体?您需要为每个条目保存它:

for k=1:40
Y(k) = 6113 * cos(2*pi*200*X(k) + 1508);
end

首先,变量Y现在是索引并成为向量。如您所见,我将您的索引变量更改为k,因为i也是复数。

如果您尝试绘制此plot(X,Y),则会收到错误XY的长度不同,X会有更多值。所以你需要调整plot命令:

plot(X(1:40),Y)

如果您希望Y与[{1}}具有相同数量的值,则只要您的向量X

,就必须进行for循环。
X

作为最后一点,尝试预先分配变量,然后在for循环中使用它们,以改善代码执行时间。 e.g:

for k=1:length(X)
Y(k) = 6113 * cos(2*pi*200*X(k) + 1508);
end
plot(X,Y)

答案 1 :(得分:0)

我刚刚发现了如何做到这一点。我尝试了下面的代码并且有效:

>> Y = 6113 * cos(2*pi*200*X + 1508);
>> plot(Y,X)