-1
我有爲了繪製信號源的熵而不產生三個符號存儲器,以與概率p1,p2和p3 =(1-P1-P2)的三個矢量。我用rand()和vector [1:.001:1]這樣的向量嘗試了很多東西,但都沒有按照它應該的那樣工作,主要的問題是我無法爲每一組概率保持一個恆定的總和。有沒有辦法或功能做到這一點?任何建議,將不勝感激。如何在matlab中製作三個向量,每個集合的概率爲1?
我有爲了繪製信號源的熵而不產生三個符號存儲器,以與概率p1,p2和p3 =(1-P1-P2)的三個矢量。我用rand()和vector [1:.001:1]這樣的向量嘗試了很多東西,但都沒有按照它應該的那樣工作,主要的問題是我無法爲每一組概率保持一個恆定的總和。有沒有辦法或功能做到這一點?任何建議,將不勝感激。如何在matlab中製作三個向量,每個集合的概率爲1?
可以生成一個矢量零和一之間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現在有點生疏,而且這樣做會有效。請在下一次提問時更精確。
我會發瘋,因爲norm'的使用'但你更快HAHAH。做得好 ;)。 +1 – 2014-12-03 17:03:52
@AnderBiguri量子力學習慣使用'norm' :) – vsoftco 2014-12-03 17:04:30
感謝您的回覆。我需要製作三個不同的向量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