2011-12-21 23 views
2

Matlabの文字列から数値配列を作成する方法は?例えばMATLABで文字列から数値配列を作成する方法は?

私は、このような文字列を持っている:

>> str = dec2bin(7); 
s = 111 

私は配列[1 1 1]を必要としています。どうやってするの?

私はstrreadを参照してください。strread ですが、空白以外の文字列入力で使用するのが難しくなります。

答えて

2

標準溶液は、陸によって投稿溶液を使用する論理的な結果を生成

a = (str == '1'); 

あります。あなただけのダブル、

a = double(str == '1'); 

かさえもが必要な場合:

a = +(str == '1'); 

おそらく最も簡単な探しているソリューションは、このいずれかになります。

a = str - 48; 

私が最後にとして最も明白だと思いますが、それは何ですか。私は読みやすく、目的を理解しやすいコードを好む。その目標は、第2の解決策IMHOによって最もよく満たされます。

1

私は単純に、とします

n = length(s); 
myArray = zeros(1,n) 
for i = 1:n 
myArray(i) = double(s(i)); 

「二重の()は、」それはあなたが望む確かであれば、コマンドは、倍精度の数値に文字列要素を変更するためのものであるものは何でもあります。

1

答えは、結果がdoubleの

> x = bitget(7,1:3); 

> class(bitget(7,1:3)) 
    ans = 

    double 

を "bitget" を使用しています。 strread

+0

ありがとうございます。もう文字列は必要ありません;) –

1

a = strread('123', '%c')

2

はちょうど別のquestionに答え、それの一部がここで役に立つかもしれない見つけました。

あなたが実際に論理ベクトルに、このような文字列を変換することができます

a = str == '1'; 

あなたはたとえばdouble(a)のために、別の型にキャストすることができます。

関連する問題