我有一个像这样的二维矩阵:
0 0 0 0 0 0
0 0 0 0 0 1
0 0 0 0 1 0
0 0 0 0 1 1
0 0 0 1 0 0
0 0 0 1 0 1
0 0 0 1 1 0
0 0 0 1 1 1
0 0 1 0 0 0
0 0 1 0 0 1
0 0 1 0 1 0
0 0 1 0 1 1
0 0 1 1 0 0
0 0 1 1 0 1
0 0 1 1 1 0
0 0 1 1 1 1
0 1 0 0 0 0
0 1 0 0 0 1
0 1 0 0 1 0
0 1 0 0 1 1
0 1 0 1 0 0
0 1 0 1 0 1
0 1 0 1 1 0
0 1 0 1 1 1
0 1 1 0 0 0
0 1 1 0 0 1
0 1 1 0 1 0
0 1 1 0 1 1
0 1 1 1 0 0
0 1 1 1 0 1
0 1 1 1 1 0
0 1 1 1 1 1
1 0 0 0 0 0
1 0 0 0 0 1
1 0 0 0 1 0
1 0 0 0 1 1
1 0 0 1 0 0
1 0 0 1 0 1
1 0 0 1 1 0
1 0 0 1 1 1
1 0 1 0 0 0
1 0 1 0 0 1
1 0 1 0 1 0
1 0 1 0 1 1
1 0 1 1 0 0
1 0 1 1 0 1
1 0 1 1 1 0
1 0 1 1 1 1
1 1 0 0 0 0
1 1 0 0 0 1
1 1 0 0 1 0
1 1 0 0 1 1
1 1 0 1 0 0
1 1 0 1 0 1
1 1 0 1 1 0
1 1 0 1 1 1
1 1 1 0 0 0
1 1 1 0 0 1
1 1 1 0 1 0
1 1 1 0 1 1
1 1 1 1 0 0
1 1 1 1 0 1
1 1 1 1 1 0
1 1 1 1 1 1
我想将此矩阵转换为以下内容:
100000
100001
100010
依旧......
答案 0 :(得分:1)
尝试mat2cell
c = mat2cell( x, ones(1, size(x,1)), size(x,2) );
尽管如此,从您的示例来看,您似乎对dec2bin
更感兴趣:
n = 6; % all binary numbers with n bits
c = dec2bin( 0:(2^n - 1), n );
答案 1 :(得分:1)
@Shai的答案可能正是您所寻找的,但我读了您的问题,询问如何连接矩阵的行以形成矢量。
然后,它取决于您想要输出的格式类型,但这里有一种获取数字向量而不是矩阵的方法。
>> A = eye(3)
A =
1 0 0
0 1 0
0 0 1
将矩阵转换为字符串:
>> B = num2str(A)
B =
1 0 0
0 1 0
0 0 1
提取与数字对应的char
(并省略空格):
>> C = B(:,1:3:end)
C =
100
010
001
这里你已经将你的值作为字符串,这可能是你想要的(即使它不是真正的矢量)。您也可以将其转换回数字,但随后您将获得以下类型的输出:
>> D = str2num(C)
D =
100
10
1