-2

次のような 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

@Shaiからの答えはあなたが探しているものかもしれませんが、行列の行を連結してベクトルを形成する方法について尋ねる質問を読みました。

出力に必要な形式のタイプによって異なりますが、行列の代わりに数値のベクトルを取得する 1 つの方法を次に示します。

>> 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

数字に対応する s を抽出charします (スペースは省略します)。

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

C =

100
010
001

ここでは、値を文字列として取得しています。これは、実際にはベクトルでなくても、必要な場合があります。これを数値に戻すこともできますが、次のような出力が得られます。

>> D = str2num(C)

D =

   100
    10
     1
于 2013-02-06T12:36:04.180 に答える
1

Try mat2cell

 c = mat2cell( x, ones(1, size(x,1)), size(x,2) );

Though, from your example, it seems like you are more interested in dec2bin:

 n = 6; % all binary numbers with n bits
 c = dec2bin( 0:(2^n - 1), n );
于 2013-02-06T12:12:58.190 に答える