2014-12-03 89 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

相关问题