『求助』Shannon-Fano 的递归

浏览:165899 回答:1
哪位大侠帮帮忙看一下:一个已经把概率从大到小排序的数组,怎么样得出Shannon-Fano的编码呀?下面是我写的程序,只能得出第一位,我想后面应该用递归来算,可是不知道该怎么用。

m=[0.2000 0.2000 0.1600 0.1600 0.1200 0.0800 0.0400 0.0400];
% m=[0.4 0.2 0.1 0.1 0.08 0.08 0.04];
% m=[0.2 0.18];
j=length(m);
codcell=cell(j,1);
j1=j;
if j1>1
m2=m(1:j);
j2=length(m2);
i=1;
z=m2(1);
j1=length(z);
t=m(2:j2);
while sum(z) < sum(t)
i=i+1;
z=[z,m2(i)];
j1=length(z);
j3=length(t);
t=t(i+1:j3);
end
a=i
for k=1:i
codcell{k}=[codcell{k},0];
k=k+1;
end
for k=i+1:j2
codcell{k}=[codcell{k},1];
k=k+1;
end
end
codcell

邀请回答 我来回答

全部回答

(1)
默认 最新
captain2006
已经搞定了!
2007年6月27日
评论 点赞

没解决?试试专家一对一服务

换一批
    App下载
    技术邻APP
    工程师必备
    • 项目客服
    • 培训客服
    • 平台客服

    TOP