-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