0

だから基本的にこれは私がやりたいことです:

私は10進数の値3を持っています:

x=3

今、私はそのようなバイナリ形式を取得します:

s = dec2bin(x,3)
s = 011

sの形式は文字列です(正しいですか?)。

ここで、この値に対して行列演算を実行するために、この値を行列に変換したいと思います。そのような:

A = [0 1 1]

しかし、私はこれを正しく理解できないようです。str2matとcell2matの両方を試しましたが、結果がありません。何か案は?

4

3 に答える 3

2

0と1のみを取得することが100%確実な場合は、次を使用します。

a = '001';
b = double(a)-48;

(0はASCIIでは48です)

于 2012-04-23T19:00:12.980 に答える
0

これが1つの方法です:

>> cellfun(@str2num, cellstr(s'))'

ans =

     0     1     1

お気づきのように、MATLABは文字列操作にはそれほど適していません。:)

于 2012-04-23T18:59:08.993 に答える
0

あなたもそれを行うことができます:

x=3;
binNumber = dec2bin(x,3);
A=sprintf('%s',binNumber) - '0';
于 2012-04-24T12:51:37.970 に答える