-2

我有一个像这样的二维矩阵:

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

等等...

4

2 回答 2

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 );
于 2013-02-06T12:12:58.190 回答
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对应于数字的 s(并省略空格):

>> C = B(:,1:3:end)

C =

100
010
001

在这里,您将值作为字符串,这可能是您想要的(即使它不是真正的向量)。您也可以将其转换回数字,但随后您将获得以下类型的输出:

>> D = str2num(C)

D =

   100
    10
     1
于 2013-02-06T12:36:04.180 回答