Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

str2num

文字配列または string の数値配列への変換

説明

X= str2num(chr)は文字配列または string スカラーを数値行列に変換します。入力には、個別の要素を示すためにスペース、コンマ、セミコロンを使用できます。str2numは入力を数値として解析できない場合、空の行列を返します。

関数str2numは cell 配列または非スカラー string 配列を変換せず、+演算子と-演算子周囲の余白を識別します。

メモ

セキュリティに関する考慮事項:str2numは、入力引数を評価する関数evalを使用して実装されます。信頼されていないユーザー入力を使用してstr2numを呼び出す場合は、予期しないコード実行を回避するために入力を検証してください。信頼されていないユーザー入力の例としては、知らないユーザーからのデータや制御できないソースからのデータが挙げられます。この懸念事項に対処しなければならない場合は、以下の方法を検討してください。

  • str2numへの入力を検証します。まず、()/*+-.、および文字eiの使用など、実行可能な演算を検索します。その他の演算が見つかった場合は、実行を許可しないようにします。

  • str2numstr2doubleなどの関数に置き換えます。

意図しない副作用:さらに、入力に関数名が含まれる場合に意図しない副作用が生じる可能性があります。このような問題を回避するには、str2doubleを使用します。

[X,tf] = str2num(chr)は、str2numchrを正常に変換した場合、追加で 2 番目の出力引数として1(true) を返します。それ以外の場合、str2num0(false) を返します。

すべて折りたたむ

数値を表す文字ベクトルを変換します。

X = str2num('100')
X = 100
X = str2num('100 200 300 400')
X =1×4100 200 300 400

str2numは指数表現を解釈します。

X = str2num('12e-3 5.9e-3 -8.1e-3 2.56e-3; 5 11.2 17.9 33')
X =2×40.0120 0.0059 -0.0081 0.0026 5.0000 11.2000 17.9000 33.0000

str2numuint16を使用して、文字ベクトルを符号なし 16 ビット整数に変換します。

X = str2num('256'); X = uint16(X)
X =uint16256

trueおよびfalseを含む文字ベクトルを logical 配列に変換します。

X = str2num('false true true false')
X =1x4 logical array0 1 1 0

失敗した変換のステータスを返します。tf0Xは空の行列です。

[X,tf] = str2num('12e-3 m/s, 5.9e-3 m/s')
X = []
tf =logical0

追加テキスト (m/s) を削除すると、変換は成功します。

[X,tf] = str2num('12e-3 5.9e-3')
X =1×20.0120 0.0059
tf =logical1

入力引数

すべて折りたたむ

数値行列表現。文字配列または string スカラーとして指定します。

数値行列を表すテキストには、'5''10,11,12''5,10;15,20'のように、スペース、コンマ、またはセミコロンを使用できます。数値と区切り記号に加えて、入力テキストには次のいずれかの項目も使用できます。

  • 小数点

  • 先頭の+または-符号

  • 10 のべき乗のスケール係数に先行する文字eまたはd

  • 複素数または虚数を示す文字iまたはj

  • 論理値を示すtrueまたはfalse

空白文字または空白文字の欠如は有意の場合があります。たとえば、str2num('1+2i')str2num('1 + 2i')はどちらも複素数1.0000 + 2.0000iを返しますが、str2num('1 +2i')は 1 行 2 列のベクトル[1.0000 + 0.0000i 0.0000 + 2.0000i]を返します。この問題を回避するには、関数str2doubleを使用します。

str2numは文字配列および string スカラーのみ変換します。非スカラー string 配列または cell 配列を数値配列に変換するには、関数str2doubleを使用します。

出力引数

すべて折りたたむ

出力配列。数値行列として返されます。

true または false の結果。データ型logical1または0として返されます。

拡張機能

バージョン履歴

R2006a より前に導入