2017-09-13 60 views
-1

我想在Matlab中生成一個列向量(nx1),其值爲雙峯分佈。我希望列向量中的所有值總計爲一個指定的值,並且能夠指定分佈中的最小值和最大值。創建一個雙向分佈在列向量中等於總和在Matlab中

謝謝!

+0

你嘗試過這麼遠嗎? – m7913d

+0

@ m7913d我一直在嘗試使用這個統一的發佈示例,https://www.mathworks.com/matlabcentral/fileexchange/9700-random-vectors-with-fixed-sum,但是我正在努力的部分是雙模式分配。似乎沒有任何人在matlab中生成雙峯分佈的文檔,只檢查數組是否是雙峯分佈。我能想到的唯一方法是使用雙峯分佈的實際函數(對於峯值,使用兩個exp()) – user3546200

回答

0

雙峯分佈有2個峯分佈,f.e兩個正態分佈的疊加:

n = 100; 
X = 1:n; 
PDF = normpdf(X, 30, 5) + 5*normpdf(X, 60, 10); % take the combination of two normal distrubtions 
PDF = PDF/sum(PDF); % normalise it, i.e. sum equals to one. 

figure 
plot(X, PDF); % plot the result 

enter image description here