Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 香农';s熵计算_Matlab_Statistics_Probability_Information Theory - Fatal编程技术网

Matlab 香农';s熵计算

Matlab 香农';s熵计算,matlab,statistics,probability,information-theory,Matlab,Statistics,Probability,Information Theory,我有一个概率分布,它定义了n可能状态的发生概率 我想计算给定概率分布的香农熵的值,以位为单位 我可以使用wentropy(x,'shannon')来获取值吗?如果可以,我在哪里可以定义系统可能具有的状态数?既然您已经有了概率分布,请将其称为p,您可以执行以下操作,而不是使用wentropy: H = sum(-(p(p>0).*(log2(p(p>0))))); 这给出了以位为单位的熵H p之和必须为1。熵是否可能以字节为单位重复?你确定吗?@A.Donda我刚刚将其编辑为“位”。

我有一个概率分布,它定义了
n
可能状态的发生概率

我想计算给定概率分布的香农熵的值,以位为单位


我可以使用
wentropy(x,'shannon')
来获取值吗?如果可以,我在哪里可以定义系统可能具有的状态数?

既然您已经有了概率分布,请将其称为
p
,您可以执行以下操作,而不是使用
wentropy

H = sum(-(p(p>0).*(log2(p(p>0)))));
这给出了以位为单位的熵
H


p
之和必须为1。

熵是否可能以字节为单位重复?你确定吗?@A.Donda我刚刚将其编辑为“位”。(这是一个很好的例子,说明为什么他们不应该在编辑时使用最小字符数,因为我必须进行其他编辑才能修复它:单个单词可能很重要)。谢谢。还有一个问题,如何在matlab中定义概率分布?作为向量?[0,0.5,0.8…]是的,我主要关心的是方法。我有一个系统每个状态的概率向量。例如,如果一个状态的概率值为1,则它很可能是当前状态,如果它的值为0,则它是系统的不可能状态。再次感谢。是的,这是概率分布的概念,但请记住,所有状态的概率之和必须为一。你是对的,但我不想称之为pdf,因为概率就像是对系统可能状态的约束,因此降低了系统的熵水平。例如,如果有三种状态的可能性相等,而有一种是不可能的,我会把它记为[1,1,1,0]。我希望我的方法不是太离经叛道。