Matlab实现二进制矩阵转换为十进制
生活随笔
收集整理的這篇文章主要介紹了
Matlab实现二进制矩阵转换为十进制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一.問題描述
[1 1 1 0 1
0 1 1 0 1
0 0 1 1 0]
每兩位3轉換為一個十進制數,共5列,那么轉換后是ceil(5/3)=2列。
[7 1
6 1
1 2]
二.問題分析
1.每八個字符劃分為一個十進制,nwords=ceil(size(b,2)/8)
2.按列處理每行的字符,只不過1到8是一組,為第一列;9到17是二組,為第2列。
cb = zeros([size(b,1),nwords],'uint8')
for(j=1:size(b,2))
{
w = ceil(j/8);
//用bitset(A,bit,Value),bit沒組都是1到8
cb(:,w) = bitset(cb(:,w),mod(j-1,8)+1,b(:,j))
}
三.實現
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function cb = compactbit(b) % % b = bits array % cb = compacted string of bits (using words of 'word' bits)[nSamples nbits] = size(b); nwords = ceil(nbits/8);%向上取整(正無窮方向)壓縮bit->word. cb = zeros([nSamples nwords], 'uint8');for j = 1:nbitsw = ceil(j/8);cb(:,w) = bitset(cb(:,w), mod(j-1,8)+1, b(:,j)); end?
總結
以上是生活随笔為你收集整理的Matlab实现二进制矩阵转换为十进制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring bean的初始化和销毁
- 下一篇: 运行及总结