信息论与编码大作业
function [ Huff_chart, Ave_length, yita] = huff_code( c )
%统计字符串中字符出现频率
t=unique(c);
for i=1:length(t)
Num(i)=length(strfind(c,t(i)));
end
Num=Num/sum(Num);
%构建Huffman编码表
Huff_chart=cell(3,length(t));
for i=1:length(t)
Huff_chart(1,i)={t(i)};
Huff_chart(2,i)={Num(i)};
Huff_chart(3,i)={0};
end
%生成待编码矩阵,每列最后一个元素为新求和得到元素的位置
n=length(t);
A=sort(Num,'descend');%按降序排列
T=A;
A=A/sum(A);
B=zeros(n,n);
%生成第一列
for i=1:n
B(i,1)=T(i);
end
r=B(i,1)+B(i-1,1);
T(n-1)=r;T(n)=0;
T=sort(T,'descend');
t=n-1;
%生成编码表的其他各列
for j=2:n
for i=1:t
B(i,j)=T(i);
end
if t>1
K=find(T==r);
B(n,j)=K(end);
r=(B(t-1,j)+B(t,j));
T(t-1)=r;
T(t)=0;
T=sort(T,'descend');
t=t-1;
else
B(n,j)=1;
end
end
%对编码矩阵进行Huffman编码编码格式为:
%2--->0
%1--->1
Huff_code=zeros(1,n);
Huff_code(1,1)=2;
Huff_code(1,2)=1;
for i=n-2:-1:1
t1=Huff_code(B(n,i+1))*10+1;
t0=Huff_code(B(n,i+1))*10+2;
Huff_code(B(n,i+1))=[];
Huff_code(n-i+1)=t1;
Huff_code(n-i)=t0;
end
%将Huffman编码对应输出到Huffman编码表格中
A1=A;
for i=1:n
t=find(abs(A-Num(i))<10.^-3);
t=t(1);
A(t)=0;
Huff_chart(3,i)={strrep(num2str(Huff_code(1,t)),'2','0')};
end
%相关计算
Ave_length=zeros(1,n);
for i=1:n
Ave_length(i)=length(num2str(Huff_code(i)));
end
Ave_length=sum(Ave_length.*A1);
H1=log2(Num);
H=-Num*(H1');
yita=H/Ave_length;
end
文章浏览阅读5.9k次。char转uint8_t:static int char2uint(char *input, uint8_t *output){ for(int i = 0; i < 24; i++) { output[i] &= 0x00; for (int j = 1; j >= 0; j--) { char hb = input[i*2 + 1 - j]; if (hb >= '0' &..._char转uint8_t
文章浏览阅读6.5k次,点赞5次,收藏13次。陀螺仪允许您在任何给定时刻确定Android设备的角速度。简单来说,它告诉您设备绕X,Y和Z轴旋转的速度有多快。最近,即使是预算手机正在制造,陀螺仪内置,增强现实和虚拟现实应用程序变得如此受欢迎。通过使用陀螺仪,您可以开发可以响应设备方向的微小更改的应用程序。创建陀螺仪对象和管理器manager// Register it, specifying the polling interv..._安卓陀螺仪多少才算静止
文章浏览阅读4.7k次,点赞3次,收藏16次。当我们要分析一个lib库里的代码时,首先需要判断这是一个静态库还是一个导入库。库类型判断lib文件其实是一个压缩文件。我们可以直接使用7z打开lib文件,以查看里面的内容。如果里面的内容是obj文件,表明是静态库。如果里面的内容是dll文件,表明是导入库。导入库里面是不包含代码的,代码包含在对应的dll文件中。从lib中提取obj静态库是一个或者多个obj文件的打包,这里有两个方法从中提取obj:Microsoft 库管理器 7z解压Microsoft 库管理器(li_libtersafe
文章浏览阅读5.3k次,点赞3次,收藏3次。了解一下,省的脑壳痛 桥接模式对应的虚拟网络名称“VMnet0” 桥接模式下,虚拟机通过主机的网卡进行通信,若物理主机有多块网卡(有线的和无线网卡),应选择桥结哪块物理网卡桥接模式下,虚拟机和物理主机同等地位,可以通过物理主机的网卡访问外网(局域网),一个局域网的其他计算机可以访问虚拟机。为虚拟机设置一个与物理网卡在同个网段的IP,则虚拟机就可以与物理主机以及局域..._linux 查询网络适配器
文章浏览阅读3.4w次,点赞77次,收藏438次。# 前言2020 12月 1+X Web 前端开发中级 模拟题大致就更这么多,我的重心不在这里,就不花太多时间在这里面了。但是,说说1+X Web前端开发等级考证这个证书,总有人跑到网上问:这个证书有没有用? 这个证书含金量高不高?# 关于考不考因为这个是工信部从2019年才开始实施试点的,目前还在各大院校试点中,就目前情况来看,知名度并不是很高,有没有用现在无法一锤定音,看它以后办的怎么样把,软考以前也是慢慢地才知名起来。能考就考吧,据所知,大部分学校报考,基本不用交什么报考费(小部分学校,个别除._1+xweb前端开发中级
文章浏览阅读2.5w次,点赞46次,收藏345次。Linux安装mysql(官方教程!)_linux安装mysql8.0
文章浏览阅读1.4k次。Simpson's rule for numerical integrationZ = SIMPS(Y) computes an approximation of the integral of Y via the Simpson's method (with unit spacing). To compute the integral for spacing different from one..._matlab利用幸普生计算积分
文章浏览阅读1.2w次,点赞28次,收藏61次。Hugging face 资源很不错,可是国内下载速度很慢,动则GB的大模型,下载很容易超时,经常下载不成功。很是影响玩AI的信心。经过多次测试,终于搞定了下载,即使超时也可以继续下载。真正实现下载无忧!究竟如何实现?且看本文分解。_huggingface_hub
文章浏览阅读3.5k次,点赞2次,收藏7次。其中 `DEFAULT CHARSET` 和 `COLLATE` 分别指定了表的默认编码和排序规则。其中 `DEFAULT CHARACTER SET` 指定了数据库的默认编码。其中 `Collation` 列指定了字段的排序规则,这也是字段的默认编码。此命令将更改表的默认编码和排序规则。此命令将更改字段的编码和排序规则。此命令将更改数据库的默认编码。_查看数据库编码
文章浏览阅读1.3k次,点赞7次,收藏24次。本文深入探讨了集成学习及其在随机森林中的应用。对集成学习的基本概念、优势以及为何它有效做了阐述。随机森林,作为一个集成学习方法,与Bagging有紧密联系,其核心思想和实现过程均在文中进行了说明。还详细展示了如何在Sklearn中利用随机森林进行建模,并对其关键参数进行了解读,希望能帮助大家更有效地运用随机森林进行数据建模。_bagging数据集
文章浏览阅读383次。创建的对话框类为 CMFCTEST2Dlg在 MFCTEST2Dlg.h : 头文件 定义#define WM_MYMESSAGE (WM_USER + 100) //step 1....// 生成的消息映射函数 virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPA..._自定义消息发送到企业微信对话框怎么实现
文章浏览阅读2.4k次,点赞3次,收藏2次。这段时间进行openstack控制台界面的开发有2个多月,感觉学到了不少东西。1、前端 首先是前端的技术,之前只知道简单的html语法,对CSS,JS,JQUERY等一窍不通。年后,小组开发人手不是很够,果断转行去开发,记得刚开始,搞个练手的界面,搞了两天才实现。而且前提是别人写好的结构,拿过来修改使用。熟读唐诗三百首,不会做诗也会吟的境界。但是一旦碰到没有样例的界面,那就头疼了_openstack console开发