ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

str2num

文字列を数字に変換

構文

x = str2num('str')
[x, status] = str2num('str')

説明

    メモ:   str2num を使用すると、関数 eval を入力引数に変換できます。文字列に関数の呼び出し文字列がある場合に、副次的な影響が発生する可能性があります。str2double を使用すると、これらの副次的な影響を回避できます。

x = str2num('str') は、数値の ASCII 文字表現である文字列 str を、数値表現に変換します。また、関数 str2num は、文字行列を数値行列へ変換することもできます。入力文字列が有効な数値または行列を表現しない場合、str2num(str) は x の空行列を返します。

入力文字列には、'5'、'10,11,12'、'5,10;15,20' のように、1 つの数値またはスペース、コンマ、セミコロンで区切った複数の値を使用できます。数値や区切り記号に加え、入力文字列には、小数点、先頭に付けられた + 符号または - 符号、10 のべき乗のスケール係数に先行する文字 e または d、複素数または虚数を示す i または j、あるいは論理値を示す true または false を含めることができます。

次の表には、関数 str2num の有効な入力のいくつかの例が示されています。

文字列入力数値出力出力クラス
'500'500double
'500 250 125 67'500 250 125 67double の 1 行 4 列のベクトル
'500; 250; 125; 62.5'500.0000
250.0000
125.0000
  62.5000
double の 4 行 1 列の列ベクトル
'1 23 6 21; 53:56'  1 23   6 21
53 54 55 56
double の 2 行 4 列の行列
'12e-3 5.9e-3'0.0120 0.0059double の 1 行 2 列の行ベクトル
'uint16(500)'50016 ビット符号なし integer
'false true'0 1logical の 1 行 2 列の行ベクトル

    メモ:   関数 str2num は、セル配列に作用しません。文字列のセル配列を数値に変換するには、str2double を使用します。

入力文字列が有効な数値または行列を表現しない場合、str2num(str)x の空行列を返します。

[x, status] = str2num('str') は、論理値に変換したステータス status を返します。ここで、status は、変換に成功した場合、論理値 1 (true) になり、変換できなかった場合は、論理値 0 (false) になります。

空白文字に意味がある場合もあります。たとえば、str2num('1+2i')str2num('1 + 2i') は、x = 1+2i になる一方、str2num('1 +2i')x = [1 2i] を生成します。関数 str2double を使用すると、これらの問題を回避できます。

1 つの数字を含む文字列を入力します。出力は、以下のように double のスカラーになります。

A = str2num('500')
A =
   500

class(A)
ans =
   double

この演算をもう一度行いますが、今回は符号なしの 16 ビット整数を使用します。

A = str2num('uint16(500)')
A =
    500

class(A)
ans =
   uint16

行ベクトルを指定するための 3 つの異なる方法を試します。それぞれ、以下の同じ出力を返します。

str2num('2 4 6 8')              % Separate with spaces.
ans =
     2     4     6     8

str2num('2,4,6,8')              % Separate with commas.
ans =
     2     4     6     8

str2num('[2 4 6 8]')            % Enclose in brackets.
ans =
     2     4     6     8

最初の 2 つのコマンドには、MATLAB® の大かっこ演算子を使用する必要がないことに注意してください。かっこは、関数 str2num によって必要に応じて挿入されます。

以下では、列ベクトルを使用します。

str2num('2; 4; 6; 8')
ans =
     2
     4
     6
     8

以下では、2 行 2 列の行列を使用します。

str2num('2 4; 6 8')
ans =
     2     4
     6     8

R2006a より前に導入

この情報は役に立ちましたか?