2016-08-15 12 views
1

私は次の関数を使用しています:μとσの値が大きい確率密度関数?

pd=makedist('normal',mu,sigma); 
y = pdf(pd,speed) 

musigmaのサイズは50x1で、Xサイズは3000x1です。一度にmu、sigma、speedの値を渡して、出力を得ています。しかし、どのようにしてこれらすべての値を同時に渡すことができるので、最後にすべてyの値を含むデータセットを取得しますか?

私はforループを使用しなければならないと思いますが、その方法はわかりません。

+0

ohh sry私はこれをやったことを知らなかった(私はこのスタックフローが初めてだ).....このオプションを私にもう一度与えてください。私はそれを受け入れる。 –

答えて

0
mu = rand(50,1); 
sigma = rand(50,1); 
speed = rand(3000,1); 
y = zeros(numel(mu),numel(speed)); 

for k = 1:numel(mu) 
    pd = makedist('normal',mu(k),sigma(k)); 
    y(k,:) = pdf(pd,speed); %store in for loop 
end 

出力を初期化することによって、すべてのコンポーネントを簡単に2重ループで計算することができます。あなたの出力は今度はy(mu/sigma,speed)として索引付けされます。したがって、最初の索引はmu/sigmaペアに対応し、2番目はspeedエントリに使用されます。

+0

あなたの助けてくれてありがとう、matlabでコードのこのサンプルを実行している間私は次のエラーが発生しています 'prob.NormalDistributionからdoubleへの変換が発生しました: prob.NormalDistributionからdoubleへの変換はできません。任意の解決策.. ?? –

+0

ああ、これは実際には 'pd'をこのようにすることはできないということです。 'pd'をまったく持っているのか、' y'値だけを持っていますか?ちょうど 'y'値はずっと簡単です。私は 'pd'を保存しないようにコードに変更しました – Adriaan

+0

最終的にy値が必要なのは、y値が私に出力を与えるためです。しかし、あなたは両方が関連しているのを見ることができるので、あなたはpd値を持たずにy値をどのように得るでしょうか? –

関連する問題