⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.m

📁 自适应编码 本发明的目标是生成一种方法:对数组压缩和解压缩编码
💻 M
字号:
function f = main(filename)
% save initial_data f;
% load initial_data;
% time1=fix(clock);

fid = fopen(filename,'r');%读文件
s = fread(fid,inf,'uchar=>uchar');%把文件中的字符按字节顺序存储在字符串列向量s中
f = s(1:100)';%把s置换得到f
% time2=fix(clock);
% time=time2-time1;
% h1=find(double(f)-double(result)>0);
% h2=find(double(f)-double(result)<0);
% l=length(h1)+length(h2);

    time1 = fix(clock);%记下此时的时间time1
    
    [nf,gai]=gailv(f);  
    %调用函数gailv是计算数组f中每个字符的概率gai和频率pin
    
    [mode,low,high] = area(nf,gai);
    %调用函数area是计算数组f中每个字符的子区间[low,high]
    
    [final,mn] = encode(f,nf,low,high);
    %调用函数code对原文件进行压缩,输出压缩流final,final是个小数数组
    
    result = decode(final,nf,low,high,mn);
    %调用函数decode对压缩流final实行解压缩得到result
    
    time2 = fix(clock);%记下此时的时间time2
    time = time2-time1;%一共所用的时间time
    
    h1 = find(double(f)-double(result)>0);%查找出错的字符个数
    h2 = find(double(f)-double(result)<0);%查找出错的字符个数
    error_sum = length(h1)+length(h2);%计算总共出错的字符个数error_sum    time1 = fix(clock);%记下此时的时间time1
    
    [nf,gai]=gailv(f);  
    %调用函数gailv是计算数组f中每个字符的概率gai和频率pin
    
    [mode,low,high] = area(nf,gai);
    %调用函数area是计算数组f中每个字符的子区间[low,high]
    
    [final,mn] = encode(f,nf,low,high);
    %调用函数code对原文件进行压缩,输出压缩流final,final是个小数数组
    
    result = decode(final,nf,low,high,mn);
    %调用函数decode对压缩流final实行解压缩得到result
    
    time2 = fix(clock);%记下此时的时间time2
    time = time2-time1;%一共所用的时间time
    
    h1 = find(double(f)-double(result)>0);%查找出错的字符个数
    h2 = find(double(f)-double(result)<0);%查找出错的字符个数
    error_sum = length(h1)+length(h2);%计算总共出错的字符个数error_sum

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -