Main Content

str2num

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

説明

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

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

メモ

セキュリティについての考慮事項: str2num は eval を使用して実装されますが、それにより望ましくない副次的影響が生じることがあります。信頼されていないユーザー入力を使用して str2num を呼び出す場合は、予期しないコード実行を回避するために Evaluation='restricted' または str2double を使用してください。

X = str2num(txt,Evaluation=method) は、txt の評価方法を決定します。既定値は "all" で、あらゆる入力を評価します。Evaluation="restricted" を指定すると、受け入れる txt の入力が 200200+2i などの基本的な数式に制限されます。

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

すべて折りたたむ

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

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

   100   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×4

    0.0120    0.0059   -0.0081    0.0026
    5.0000   11.2000   17.9000   33.0000

名前と値の引数 Evaluation="restricted" を使用して、受け入れる入力を基本的な数式に制限します。

Evaluation が設定されていない場合、str2num はあらゆる入力を評価します。

X = str2num("datetime")
X = datetime
   12-Aug-2022 20:29:30

Evaluation="restricted" を指定して、受け入れる入力を基本的な数式に制限します。基本的な数式以外の入力では、代わりに [] が返されます。

X = str2num("datetime",Evaluation="restricted")
X =

     []

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

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

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

X = str2num('false true true false')
X = 1x4 logical array

   0   1   1   0

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

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

     []
tf = logical
   0

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

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

    0.0120    0.0059

tf = logical
   1

入力引数

すべて折りたたむ

数値行列表現。文字配列または 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 を使用します。

評価方法。"all" または "restricted" として指定します。評価方法を "restricted" に設定すると、受け入れる chr の入力が基本的な数式に制限されます。

出力引数

すべて折りたたむ

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

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

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する