如何用matlab实现将正负小数矩阵转为二进制比特流比如说下列7行1列的矩阵转为每个数用8位二进制数来表示.x=-0.0039-0.0071-0.0071-0.00110.00430.00340.0029如果还有余力的大神,也恳请指教恢复回原来

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/07 06:39:34
如何用matlab实现将正负小数矩阵转为二进制比特流比如说下列7行1列的矩阵转为每个数用8位二进制数来表示.x=-0.0039-0.0071-0.0071-0.00110.00430.00340.0029如果还有余力的大神,也恳请指教恢复回原来

如何用matlab实现将正负小数矩阵转为二进制比特流比如说下列7行1列的矩阵转为每个数用8位二进制数来表示.x=-0.0039-0.0071-0.0071-0.00110.00430.00340.0029如果还有余力的大神,也恳请指教恢复回原来
如何用matlab实现将正负小数矩阵转为二进制比特流
比如说下列7行1列的矩阵转为每个数用8位二进制数来表示.
x=
-0.0039
-0.0071
-0.0071
-0.0011
0.0043
0.0034
0.0029
如果还有余力的大神,也恳请指教恢复回原来正负小数矩阵的源代码!求指教!

如何用matlab实现将正负小数矩阵转为二进制比特流比如说下列7行1列的矩阵转为每个数用8位二进制数来表示.x=-0.0039-0.0071-0.0071-0.00110.00430.00340.0029如果还有余力的大神,也恳请指教恢复回原来
8位二进制最多表示256种数据
显然不能使用浮点数来储存
看你的数据格式都是0.00xx的小数形式,那么我们可以用定点数来表示
一种比较简单的办法就是将原来的数乘上10000倍
那么都会变成整数,由于8位有符号整数的表达范围是-128~127
我们可以用8位有符号整数来表示你的数据,默认其表示的是小数点后4为的数
这样就可以获得-0.0128~0.0127范围以内的小数
解码也比较简单,每8位二进制数一起看成是一个8位有符号数
将获得的数除以10000,得到浮点数就是原来的小数了.
%编码
x=[-0.0039;-0.0071;-0.0071;-0.0011;0.0043;0.0034;0.0029;];
a=int8(x*10000);
fid=fopen('dat.bin','w');
fwrite(fid,a,'int8');%转化为进制流,写入文件
fclose(fid);
%解码
fid=fopen('dat.bin','r');
b=fread(fid,inf,'int8');%读出二进制流文件中的数据
fclose(fid);
y=b/10000;%还原数据

如何用matlab实现将正负小数矩阵转为二进制比特流比如说下列7行1列的矩阵转为每个数用8位二进制数来表示.x=-0.0039-0.0071-0.0071-0.00110.00430.00340.0029如果还有余力的大神,也恳请指教恢复回原来 如何用matlab实现矩阵的列归一化是列归一化 如何用MATLAB使矩阵中的元素保留两位小数 matlab级数求和如何用sum实现? 如何用MATLAB实现,1.-140 如何用matlab建立如下矩阵 如何用MATLAB求逆矩阵 如何用matlab算矩阵的逆 如何用matlab将一个矩阵的n次幂表示成A^n的形式 求助Matlab关于将logical矩阵转为数值矩阵的问题 javascript如何将小数转为整数?如题,比如160.38 如何用matlab把一个方阵分解成一个矩阵和它转置相乘已知B是3*3的方阵,求一个3*4的矩阵A,满足B=A*A'.如何用matlab实现. MATLAB中怎么把小数转换为分数?MATLAB中,有些计算的结果是小数.怎么把小数转换为分数?如计算a=1/3.计算出的结果是a=0.333333,怎么将此结果转为1/3? matlab三维矩阵转为二维矩阵用matlab读取一个6波段影像,读取的是m*n*6的三维矩阵,请问如何用reshape或者其他命令,把这个矩阵转化为k×6的二维矩阵呢?(其实就是在三维情况下,把m×n的矩阵化为 多目标规划中如何用matlab或lingo序实现优先级Pi和正负偏差变量d的编写?就是说d+、d-用什么符号表示? matlab中怎么把数据转为矩阵 如何实现matlab 将一个矩阵中前几列置为0 如何用matlab实现线性规划的整数求解