Matlab:将二进制降序为升序二进制,如[0 0 1 0]到[0 1 0 0]或1011到1101?

时间:2013-10-26 12:54:58

标签: matlab math binary

我的数组只存储下面的二进制数,二进制文件大小为1x31。现在我想把最后一位作为第一位,将第一位作为最后一位,依此类推。这里数据结构的选择可能非常差 - 当我学习使用二进制文件时,我可能会摆脱数组。通过简单的排序,二进制文件使得数组的排序变得更加容易。无论如何这现在很难:

Matlab中是否有一些现成命令用于将降序二进制更改为升序二进制文件?

输入

>> C(21,:)

ans =

   (1,11)       1
   (1,16)       1
   (1,17)       1


>> full(C(21,:))

ans =

  Columns 1 through 11

     0     0     0     0     0     0     0     0     0     0     1

  Columns 12 through 22

     0     0     0     0     1     1     0     0     0     0     0

  Columns 23 through 31

     0     0     0     0     0     0     0     0     0

使用某些命令(例如invertDec2Asc

)确定输出的目标
>> invertDec2Asc(C(21,:))

ans =

   (1,21)       1
   (1,16)       1
   (1,15)       1

2 个答案:

答案 0 :(得分:2)

尝试使用num2str后跟fliplr

revnum = fliplr( num2str(num) )

<强>测试

num = ['101010';'010101']
revnum = fliplr( num2str(num) )

num =

101010
010101

revnum =

010101
101010

答案 1 :(得分:1)

flipudfliplr是您正在寻找的。

Matlab documentation

fliplr([1 0 1 0]) = [0 1 0 1]
fliplr('1010') = '0101' 

matlab中二进制文件的格式:'1010',例如使用dec2bin(10)

创建