2014-12-03 90 views
-1

我有爲了繪製信號源的熵而不產生三個符號存儲器,以與概率p1,p2和p3 =(1-P1-P2)的三個矢量。我用rand()和vector [1:.001:1]這樣的向量嘗試了很多東西,但都沒有按照它應該的那樣工作,主要的問題是我無法爲每一組概率保持一個恆定的總和。有沒有辦法或功能做到這一點?任何建議,將不勝感激。如何在matlab中製作三個向量,每個集合的概率爲1?

回答

2

可以生成一個矢量零和一之間3張的實數p

p = rand(1,3); 

然後正常化p

p = p/sum(p); 

然後p(1) + p(2) + p(3)是1

編輯:

迴應OP的評論

N = 100; 

p = rand(N, 3); 
for k = 1: N 
    p(k,:) = p(k,:)/sum(p(k,:)); 
end; 

現在您有一個N x 3矩陣,行總計爲1。我敢肯定,有一種更「純粹的」MATLAB方法來編寫使用某些矢量化技巧的循環,但是我的MATLAB現在有點生疏,而且這樣做會有效。請在下一次提問時更精確。

+0

我會發瘋,因爲norm'的使用'但你更快HAHAH。做得好 ;)。 +1 – 2014-12-03 17:03:52

+1

@AnderBiguri量子力學習慣使用'norm' :) – vsoftco 2014-12-03 17:04:30

+0

感謝您的回覆。我需要製作三個不同的向量p1,p2和p3,每個向量爲100列,而且每個集合的總和應該是1(p1(1)+ p2(1)+ p3(1)= 1,p1(2)+ p2 (2)+ p3(2)= 1)以繪製熵與p1,p2和p3的關係。 – 2014-12-03 17:11:24

相關問題