我是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
我该如何解决这个问题?谢谢,
答案 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)
,则会收到错误X
且Y
的长度不同,X
会有更多值。所以你需要调整plot命令:
plot(X(1:40),Y)
如果您希望Y
与[{1}}具有相同数量的值,则只要您的向量X
,
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)