-
大小: 4KB文件類型: .rar金幣: 2下載: 0 次發布日期: 2021-05-13
- 語言: 其他
- 標簽:
資源簡介
只統計英文文本的26個字母(不分大小寫)出現概率,并對這26個字母進行哈夫曼編碼,香農編碼,主程序在CalculateLetters_Number.m中。

代碼片段和文件信息
clc
clear
?%導入pages.txt文件,獲取文章中的字符串
fid?=?fopen(‘a.txt‘);???????????????
tline?=?fgetl(fid);
%變量初始化
i?=?1;
test?=?[];
j?=?1;
str1?=?‘‘;
while?ischar(tline)
????disp(tline);????????????????????%顯示每一行
????pages{i}?=?tline;???????????????%將文章中的每一行的字符串存在數據類型為元包(cell)變量中
????tline?=?fgetl(fid);
????i=i+1;
end
fclose(fid);
%for循環?實現pages中的所有行字符串存儲在同一個名為:str的字符串變量中
for?i=1:length(pages)
????str?=?strcat(str1pages{i});
????str1?=?str;
end
str;???????????????????????????????%拿str字符串,自行與文章全文進行校對
a?=?lower(str);????????????????????%大寫字母轉小寫
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%濾除其他字符,只計算英文字符
for?i=1:length(a)
????if(a(i)>=‘a‘)
????????if(a(i)<=‘z‘)
????????test(j)?=?a(i);
????????j?=?j?+?1;
????????end
????end
end
st=sprintf(‘%c‘test)??????????????%顯示最終要統計的英文字符
%%
char?=?unique(st);?????????????????%計算有多少個不重復的字符串
for?i?=?1:length(char)
????char(i);
????number(i)?=?length(strfind(stchar(i)));?%統計字符的數目
end
char???????????????????????????????%顯示字符
number?????????????????????????????%顯示個數
%計算頻率frequency
frequency?=?number/sum(number)?????%這里進行一個計算只為了與上面的number現實的個數相對應(這個frequency與下面那個frequency只是順序不同)
%分別將所有出現過的字符:char每個char出現的次數:number每個char出現的頻率:frequency
number?=?sort(number2‘descend‘)?;?%做一個降序,方便下面進行編碼
frequency?=?number/sum(number);?????%再次計算頻率
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%哈夫曼編碼%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%哈夫曼編碼主程序????
disp(‘%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%哈夫曼編碼%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%‘)
r=2;????????????????????????????????%r代表r元碼
Huffman_CLQ(frequencyr)
disp(‘%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%香農編碼%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%‘)
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%香農編碼%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
shannon_result?=?shannon(frequency)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????145??2018-01-11?14:55??上傳文件\a.txt
?????文件???????2265??2018-01-12?01:15??上傳文件\CalculateLetters_Number.m
?????文件????????276??2018-01-11?15:25??上傳文件\check.m
?????文件????????253??2018-01-11?15:27??上傳文件\first_S.m
?????文件???????2407??2018-01-11?15:58??上傳文件\Huffman_CLQ.m
?????文件???????1661??2018-01-12?01:16??上傳文件\shannon.m
?????文件????????919??2018-01-11?15:46??上傳文件\yasuo_pp.m
?????目錄??????????0??2018-01-11?15:58??上傳文件
-----------?---------??----------?-----??----
?????????????????7926????????????????????8
- 上一篇:水杉導出pmx插件 ExportPMX
- 下一篇:ReimageRepair
評論
共有 條評論