编程解决下列问题:1,编写熵函数。2,输出熵函数随概率变化的曲线图。

1.编写一个熵函数,并对输入参数进行检验,使之满足概率空间并处理函数计算log0时的Nan问题。

编写的函数代码如下:

function H= entropy(p)
%entropy 信息熵函数
%输入信源的概率空间,输出信息熵
if p>=0
    if sum(p)==1
        p(find(p==0))=1;  %解决log0的Nan问题
        H=sum(sum(-p.*log2(p)));
    else
        fprintf('不满足概率表空间!\n');
    end
else
    fprintf('不满足概率空间!\n');
end
end

测试代码如下:

p=[1/2 1/8 1/8 1/8 1/8 0];
H=entropy(p)
fprintf('信源熵为%g\n',H);

运行后结果如图所示:

2.编写二元信源熵H(w)随w变化的曲线图

代码如下:

syms  w Hw
XP=[0 1
    w 1-w];
Hw=sum(-XP(2,:).*log2(XP(2,:)));
ezplot(w,Hw,[0,1]);xlabel('w'),ylabel('Hw');
title('H(w)随w变化曲线图');

曲线图如下图所示:

 

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值