matlab中将十进制矩阵转换为二进制的两种方式

clear
A=[1 2 3 7; 4 5 6 8 ; 7 8 9 9];
B=(boolean(dec2bin(A,8)-'0'));
[row_b,col_b]=size(B);
[row_a,col_a]=size(A);


%%方案一,通过dec2bin命令,简单方便,但是若位数太多则会损失精度。
%%AA为转换结果
AA = dec2bin(A(:,1)*(256^3)+A(:,2)*(256^2)+A(:,3)*256+A(:,4),32);
AA = boolean(AA-'0');
%bin2dec(AA(1,1:8)) 可以通过这个方式将字符转换为数据

%%方案二,通过dec2bin和循环方式,效率较低但是位数不受限
%%BB为转换结果
for i=1:row_a
    x=0;
    for j=1:col_a
     BB(i,(j-1)*col_b+1:col_b*j)=B(i+x*row_a,:);
     x=x+1;
    end    
end    

你可能感兴趣的:(MATLAB笔记)