【霍夫曼编码】matlab 基于霍夫曼编码译码界面设计【源码74期】

一、简介

matlab 基于霍夫曼编码译码界面设计

二、部分源码

function bm_Callback(hObject, eventdata, handles)
% hObject    handle to bm (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
clc;     %清除command window
data=get(handles.xy,'String');     %读入信源
data=uint8(data);         %将信源转化为uint8
[codeword_OK,simbolsout1,fout1,simbolsout2,fout2,zipped,info] = norm2huff(data);  %编码

%排序前
for i=1:length(fout1)
    fout1str{i}=num2str(fout1(i));          %将排序之前的概率转换成cell型数据,方便listbox使用
    str1{i}=char(simbolsout1(i)-1);         %将排序之前的码元转换成cell型数据,方便listbox使用,char将ASCII码转成字符
end
handles.str1=str1;           %得到排序前码元
handles.fout1str=fout1str;   %得到排序前概率

%排序后
for i=1:length(fout2)
    str2{i}=char(simbolsout2(i)-1);      %将排序之后的码元转换成cell型数据,方便listbox使用,char将ASCII码转成字符  
end
handles.str2=str2;           %得到排序后码元               

%得到编码
for i=1:length(codeword_OK)
    codestr{i}=num2str(double(codeword_OK{i}));
    codestr{i}=codestr{i}(find(codestr{i}~=' '));     %去掉字符串里的空格,得到霍夫曼码
end
handles.codestr=codestr;                 %保存霍夫曼码 

handles.zipped=zipped;                  %保存编码的结果
handles.info=info;

guidata(hObject, handles);             %更新handles结构体
 

三、运行结果

四、matlab版本

MATLAB R2019a

五、学习与交流

文中不足之处请大家多多指教,学习与交流可以联系企鹅:3752243968
文中部分源码仅供参考,若需要全部代码可以私信

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值