当前位置:网站首页>Matlab implementation of Huffman coding and decoding with GUI interface
Matlab implementation of Huffman coding and decoding with GUI interface
2022-07-07 11:49:00 【Matlab scientific research studio】
1 brief introduction
stay matlab Middle simulation C Middle linked list , Using complex number operation , Contact specific characters and probabilities , Find the number corresponding to the two characters of the minimum probability each time , Record it in turn , Finally, according to the different implementation of parity codes Huffman code . This algorithm is novel and unique , Easy to understand , Programming .
2 Part of the code
function varargout = huffman_GUI(varargin)% HUFFMAN_GUI M-file for huffman_GUI.fig% HUFFMAN_GUI, by itself, creates a new HUFFMAN_GUI or raises the existing% singleton*.%% H = HUFFMAN_GUI returns the handle to a new HUFFMAN_GUI or the handle to% the existing singleton*.%% HUFFMAN_GUI('CALLBACK',hObject,eventData,handles,...) calls the local% function named CALLBACK in HUFFMAN_GUI.M with the given input arguments.%% HUFFMAN_GUI('Property','Value',...) creates a new HUFFMAN_GUI or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before huffman_GUI_OpeningFunction gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to huffman_GUI_OpeningFcn via varargin.%% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one% instance to run (singleton)".%% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help huffman_GUI% Last Modified by GUIDE v2.5 10-Jan-2014 18:20:43% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @huffman_GUI_OpeningFcn, ...'gui_OutputFcn', @huffman_GUI_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin & isstr(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before huffman_GUI is made visible.function huffman_GUI_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to huffman_GUI (see VARARGIN)% Choose default command line output for huffman_GUIhandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes huffman_GUI wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.function varargout = huffman_GUI_OutputFcn(hObject, eventdata, handles)% varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout{1} = handles.output;% --- Executes during object creation, after setting all properties.function xylj_CreateFcn(hObject, eventdata, handles)% hObject handle to xylj (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white');elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));endfunction xylj_Callback(hObject, eventdata, handles)% hObject handle to xylj (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of xylj as text% str2double(get(hObject,'String')) returns contents of xylj as a double% --- Executes on button press in dqxy.function dqxy_Callback(hObject, eventdata, handles)% hObject handle to dqxy (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)[Filename Pathname]=uigetfile({'*.txt'},' Please select a file '); % Select the file box functionstr=[Pathname Filename]; % Get the path and file namexinyuan=textread(str,'%s'); % In the form of strings , Read in a text filexinyuan=xinyuan{:}; % take cell Type data into charset(handles.xylj,'string',str) % Show the path of the sourceset(handles.xy,'string',xinyuan) % Show source% --- Executes during object creation, after setting all properties.function xy_CreateFcn(hObject, eventdata, handles)% hObject handle to xy (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white');elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));endfunction xy_Callback(hObject, eventdata, handles)% hObject handle to xy (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of xy as text% str2double(get(hObject,'String')) returns contents of xy as a double% --- Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --- Executes on button press in bm.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; % eliminate command windowdata=get(handles.xy,'String'); % Read into the sourcedata=uint8(data); % Convert the source into uint8[codeword_OK,simbolsout1,fout1,simbolsout2,fout2,zipped,info] = norm2huff(data); % code% Before orderingfor i=1:length(fout1)fout1str{i}=num2str(fout1(i)); % Convert the probability before sorting into cell Type data , convenient listbox Usestr1{i}=char(simbolsout1(i)-1); % Convert the symbols before sorting into cell Type data , convenient listbox Use ,char take ASCII Code to characterendhandles.str1=str1; % Get the pre sort symbolhandles.fout1str=fout1str; % Get the pre ranking probability% After orderingfor i=1:length(fout2)str2{i}=char(simbolsout2(i)-1); % Convert the sorted symbols into cell Type data , convenient listbox Use ,char take ASCII Code to characterendhandles.str2=str2; % Get the sorted symbols% Get the codefor i=1:length(codeword_OK)codestr{i}=num2str(double(codeword_OK{i}));codestr{i}=codestr{i}(find(codestr{i}~=' ')); % Remove the spaces in the string , Get Hoffman codeendhandles.codestr=codestr; % Save Hoffman codehandles.zipped=zipped; % Save the encoded resultshandles.info=info;guidata(hObject, handles); % to update handles Structure% --- Executes on button press in myzl.function myzl_Callback(hObject, eventdata, handles)% hObject handle to myzl (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)set(handles.xsmyzl,'Value',1)set(handles.xsmyzl,'String',handles.str1);% --- Executes during object creation, after setting all properties.function xsmyzl_CreateFcn(hObject, eventdata, handles)% hObject handle to xsmyzl (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: listbox controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white');elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));end% --- Executes on selection change in xsmyzl.function xsmyzl_Callback(hObject, eventdata, handles)% hObject handle to xsmyzl (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: contents = get(hObject,'String') returns xsmyzl contents as cell array% contents{get(hObject,'Value')} returns selected item from xsmyzlerror('input argument must be a uint8 vector')end%f=repmat(0,1,256);% Scan vectorlen=length(vector);for index=0:255; % Note that the index parameter of the vector is from 0 At the beginningf(index+1)=sum(vector==uint8(index));end%
3 Simulation results

4 reference
[1] Wu Jiqun , Li shuangke . Matlab achieve huffman code [J]. China Science and technology information , 2006(19):2.
About bloggers : Good at intelligent optimization algorithms 、 Neural networks predict 、 signal processing 、 Cellular automata 、 The image processing 、 Path planning 、 UAV and other fields Matlab Simulation , relevant matlab Code problems can be exchanged by private letter .
Some theories cite network literature , If there is infringement, contact the blogger to delete .
边栏推荐
- 18 basic introduction to divider separator component of fleet tutorial (tutorial includes source code)
- Complete collection of common error handling in MySQL installation
- 正在运行的Kubernetes集群想要调整Pod的网段地址
- Learning notes | data Xiaobai uses dataease to make a large data screen
- Electron adding SQLite database
- 【愚公系列】2022年7月 Go教学课程 005-变量
- 千人规模互联网公司研发效能成功之路
- About how to install mysql8.0 on the cloud server (Tencent cloud here) and enable local remote connection
- Android interview knowledge points
- Qt 实现容器的DELETE的方式
猜你喜欢

【最短路】ACwing 1127. 香甜的黄油(堆优化的dijsktra或spfa)

分布式数据库主从配置(MySQL)

超标量处理器设计 姚永斌 第8章 指令发射 摘录

Test the foundation of development, and teach you to prepare for a fully functional web platform environment

Excel公式知多少?

Solve the problem that vscode can only open two tabs
![[system design] index monitoring and alarm system](/img/8e/9c4c168f7f2b8e1f0786a5fe158544.png)
[system design] index monitoring and alarm system

Summed up 200 Classic machine learning interview questions (with reference answers)

聊聊SOC启动(十一) 内核初始化

STM32F1与STM32CubeIDE编程实例-315M超再生无线遥控模块驱动
随机推荐
Cmu15445 (fall 2019) project 2 - hash table details
Camera calibration (2): summary of monocular camera calibration
When sink is consumed in mysql, the self incrementing primary key has been set in the database table. How to operate in Flink?
STM32 entry development NEC infrared protocol decoding (ultra low cost wireless transmission scheme)
MySQL安装常见报错处理大全
How to write test cases for test coupons?
使用MeterSphere让你的测试工作持续高效
Summed up 200 Classic machine learning interview questions (with reference answers)
La voie du succès de la R & D des entreprises Internet à l’échelle des milliers de personnes
C#中在路径前加@的作用
STM32入门开发 采用IIC硬件时序读写AT24C08(EEPROM)
千人規模互聯網公司研發效能成功之路
STM32 entry development uses IIC hardware timing to read and write AT24C08 (EEPROM)
18 basic introduction to divider separator component of fleet tutorial (tutorial includes source code)
【滤波跟踪】基于matlab捷联惯导仿真【含Matlab源码 1935期】
[shortest circuit] acwing 1127 Sweet butter (heap optimized dijsktra or SPFA)
【数据聚类】基于多元宇宙优化DBSCAN实现数据聚类分析附matlab代码
Programming examples of stm32f1 and stm32subeide -315m super regenerative wireless remote control module drive
Software design - "high cohesion and low coupling"
软件内部的定时炸弹:0-Day Log4Shell只是冰山一角