我使用下面的函數:具有較大mu和sigma值的概率密度函數?
pd=makedist('normal',mu,sigma);
y = pdf(pd,speed)
的mu
和sigma
大小爲50X1和X
大小3000x1。一次傳遞一個mu,sigma和speed的值,我得到輸出。但是,我怎樣才能同時傳遞所有這些值,以便在最後我會得到一個包含所有y
值的數據集?我想我不得不使用for
循環,但我不確定如何去做。
我使用下面的函數:具有較大mu和sigma值的概率密度函數?
pd=makedist('normal',mu,sigma);
y = pdf(pd,speed)
的mu
和sigma
大小爲50X1和X
大小3000x1。一次傳遞一個mu,sigma和speed的值,我得到輸出。但是,我怎樣才能同時傳遞所有這些值,以便在最後我會得到一個包含所有y
值的數據集?我想我不得不使用for
循環,但我不確定如何去做。
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
通過初始化輸出可以很容易地雙循環計算所有組件。您的輸出現在索引爲y(mu/sigma,speed)
,因此第一個索引對應於mu/sigma
對,第二個對應於speed
使用的條目。
感謝您的幫助,但在matlab中運行此代碼示例時遇到以下錯誤'發生從prob.NormalDistribution轉換爲double的以下錯誤: 從prob.NormalDistribution轉換爲double是不可能的。任何解決方案.. ?? –
哦,這意味着你不能這樣真正得到'pd'。你想擁有'pd'嗎,還是隻有'y'值?只有'y'值更容易。我改變了代碼不保存'pd' – Adriaan
我最後需要y值,因爲y值會給我輸出。但是如何在沒有pd值的情況下獲得y值,因爲你可以看到兩者都是相關的......? –
ohh sry我沒有意識到我做到了這一點(我是這個stackflow的新手).....請再次給我這個選項。我會接受它。 –