2017-11-01 23 views
0

私は3つの変数を持つシンボリック関数を作成したい:xはベクトルで、smはスカラーです。次に、msを0と1に、そしてxを間隔[-10, 10]にまたがってプロットするとします。私は以下を試した:MATLABのシンボリック関数でシンボリック変数を評価しプロットする方法は?

syms x m s 
%x= 
y(x)=((1/(s*sqrt(2*pi)))*exp(-1/2*((x-m)/s)^2)) 
m=0 
s=1 
yx=subs(y) 
y 
yx 
fplot(linspace(-10,10),yx) 

プロットは奇妙に思える。私のミスはどこですか?

答えて

1

間違った構文を使用してfplotに電話しています。

fplot(yx); 

これは、[-5 5]のデフォルトのx範囲を使用します。あなたはXの範囲を変更したい場合は、そのように、fplotへの呼び出しで2要素ベクトル引数を追加します。

fplot(yx, [-10 10]); % Plots over the range [-10 10] 

あなたが最初の引数としてlinspace(...)を入れた場合、MATLABは、「あなたかのようにそれを解釈するように見えます2つの引数を持つ呼び出し構文fplot(funx, funy)を使用しようとしています。これは、両方の入力がparametric functions(これはそうではありません)であると想定しています。

+0

うわー、そうだった!なぜ機能がそれ自体で間隔を選んだのでしょうか? –

+2

@MouadSama:あなたはドキュメントを見ましたか? 'fplot'が使うデフォルトのx範囲は' [-5 5] 'です。 – gnovice

+0

ありがとうございました 私の間隔が-10,10 –

関連する問題