string のコード生成
コード生成は 1 行 1 列の MATLAB® string 配列をサポートします。コード生成では、複数の要素を含む string 配列はサポートされません。
"string スカラー" と呼ばれる 1 行 1 列の string 配列には、1 行 n 列の文字ベクトルで表されるテキストが含まれます。string スカラーの例として "Hello, world"
があります。string の詳細については、string 配列および文字配列内のテキストを参照してください。
制限
string スカラーでは、コード生成は、以下をサポートしていません。
グローバル変数
中かっこ
{}
によるインデックス付け欠損値
assert
ステートメントで前提条件を使用したプログラムによる入力の型の定義 (codegen
(MATLAB Coder) コマンド、fiaccel
(Fixed-Point Designer) コマンド、または MATLAB Coder™ アプリを使用してコードを生成する場合)coder.varsize
での使用 (codegen
(MATLAB Coder) コマンド、fiaccel
(Fixed-Point Designer) コマンド、または MATLAB Coder アプリを使用してコードを生成する場合)Simulink® 信号、パラメーター、データ ストア メモリとしての用途
コード生成では、クラスに適用される制限が string にも適用されます。コード生成のための MATLAB クラスの定義を参照してください。
生成されたコードと MATLAB コードの相違点
複数の単項演算子を含む string を
double
に変換すると、MATLAB の結果と生成されたコードの結果が異なる場合があります。次の関数を考えてみます。function out = foo(op) out = double(op + 1); end
入力値
"--"
の場合、関数によって string"--1"
がdouble
に変換されます。MATLAB では、回答がNaN
になります。生成されたコードの回答は1
です。間違って配置されたコンマ (3 桁ごとの区切りとして使用されていないコンマ) をもつ string を double に変換した場合、MATLAB とは異なる結果が得られることがあります。