2017-10-20 7 views
0

私はMatlabで新しく、すべてのX値に対してY関数をプロットしようとしています。このために、以下のコードを使用しました。 Figure画面は開きますが、画面に何も表示されません。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 

どうすればこの問題を解決できますか?ありがとう、

答えて

2

最初のものが最初です。

JollyRogerの回答は正しいですが、間違っていることを見てみましょう。

YXをプロットしようとしています。 Yがスカラーである一方、

plot(Y,X) 

しかし、あなたのXはベクトルです。また、あなたはXとしてコマンドを反転する必要がありですから、Y各X -Valueのためのベクトル情報を保持するために何を行うことができ、あなたの独立変数

plot(X,Y) 

のですか?あなたは、各エントリのためにそれを保存する必要があります。すべての変数Y

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

まず今指数であり、ベクトルになります。ご覧のとおり、インデックス変数をkに変更しました。iも複素数であるためです。

あなたはこのplot(X,Y)をプロットしてみたい場合XYが同じ長さを持っていけないように、あなたがエラーになるだろう、Xは、複数の値を持っています。

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

、あなたがいる限り、あなたのベクトルXとしてループのために行う必要がありXとしてYが同じ値の量を持っているしたい場合は

plot(X(1:40),Y) 

:だから、plotコマンドを適応させる必要があります最後の注意として、コード実行時間を改善するためにforループで使用する前に変数を事前に割り当ててみてください。例:

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

私はこれを行う方法を見つけました。私は以下のコードを試してみました。それはうまくいきました。

>> Y = 6113 * cos(2*pi*200*X + 1508); 
>> plot(Y,X) 
関連する問題