在Matlab中怎么把一个数组转换为二进制(原来是十进制的)?)

来源:百度知道 编辑:UC知道 时间:2024/06/23 02:10:38
我用imread函数读取了一张照片的数据,比如,a=imread(‘zp。bmp’);
b=a(:,:,1);dlmwrite(‘datac。txt’,b);现在要把datac。txt中数据转化为二进制。怎么办?
其次,本次作业要求我们图片进行哈夫曼编码,转二进制是让老师看的。接下来主要的进行统计(对datac。txt的数据统计个数)求起概率,在编码,最后需要解码……
以上的问题,用什么软件都可以,主要是想尽快的做好。
先谢谢各位了……希望大家给我点意见
现在要对datac.txt(共有256*256个数)里的数进行统计,在进行哈夫曼编码压缩,解码。我对文件的读写有点模糊,希望大家指点,最好在才c/c++里运行的。
谢谢!

使用dec2bin()函数

b=double(b);
[M N]=size(b);
for i=1:M
for j=1:N
I(i,j)=str2double(dec2bin(b(i,j)));
end
end
dlmwrite('datac.txt',b);

这样保存的就是每个数据的二进制形式。
下次再读数据时,用load('datac.txt'),不要用textread('datac.txt'),因为写的时候没有设置格式,用第二个函数读出来有问题。

原数组为十进制数组,需要转换为二进制,然后取反加一,以上内容已完成,现在需要将处理后的二进制数组重新转换为十进制的数组,不知道怎么办了,求助高手赐教。
自己的程序如下,不好使。
错误提示??? Assignment has more non-singleton rhs dimensions than non-singleton subscripts.
Error in ==> dataprocessing at 30
aa(i,1)=num2str(c(i,1));

错误信息什么意思?

for i=1:M;%M为数组中元素总数
aa(i,1)=num2str(c(i,1));
decnum(i,1)=bin2dec('aa(i,1)');%将所有处理后的二进制数一一赋给decnum(i)
end

oh 我怎么不会了呢 哎。。当初就该好好看看matlab 哎。。。好好

dec2bin 十转二进
dec2hex 十转十六进