このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
MATLAB Function
MATLAB コードを Simulink モデルに含める

ライブラリ:
Simulink /
User-Defined Functions
HDL Coder /
User-Defined Functions
説明
MATLAB Function ブロックでは、Simulink® モデルで実行される MATLAB® 関数を記述できます。MATLAB 関数はシミュレーション中に各タイム ステップで実行されます。Simulink モデルへの MATLAB コードの統合の詳細については、Simulink での MATLAB Function ブロックを使用した MATLAB 関数の実装を参照してください。Simulink Coder™ のライセンスがある場合は、MATLAB Function ブロックから Simulink Coder ターゲット用の C/C++ コードを生成することもできます。
MATLAB Function ブロックをダブルクリックして MATLAB Function ブロック エディターを開き、MATLAB 関数を記述します。また、モデル エクスプローラーまたは [シンボル] ペインを使用して、変数の定義、入力トリガーの追加、および関数呼び出し出力の作成も実行できます。詳細については、MATLAB Function ブロックの変数の作成と定義、MATLAB Function ブロックの入力トリガーの管理およびMATLAB Function ブロックの関数呼び出しの出力の管理を参照してください。
[シンボル] ペインで、ブロック入力を端子ではなく Simulink パラメーターとして宣言できます。MATLAB Function ブロックは、入力、出力、およびパラメーターについて、タイプとサイズの継承もサポートします。それらのプロパティは明示的に指定できます。変数のデータ型の定義と変更、MATLAB Function ブロック変数のサイズの指定、およびパラメーター変数の定義による複数の MATLAB Function ブロックでのデータの使用を参照してください。
MATLAB Function ブロックが含まれるモデルをシミュレートするときに、ソフトウェアはブロックからバイナリ コードまたは C/C++ MATLAB 実行可能 (MEX) コードを生成し、このコードをモデルに統合します。MATLAB Function ブロックでは、Simulink の外部にある MATLAB コードから C/C++ コードを生成するために使用する、MATLAB Coder と同じインフラストラクチャが使用されます。したがって、MATLAB Function ブロックのコードでは、コード生成でサポートされる MATLAB の表記法を使用する必要があります。MATLAB Function ブロックのコードと統合に関する制限を参照してください。
データの可視化をサポートするために、MATLAB Function ブロックは、シミュレーションについてのみ、MATLAB 関数の呼び出しをサポートします。MATLAB Function ブロックでの MATLAB エンジンを使用した関数呼び出しの実行を参照してください。Simulink Coder を使用してコードを生成する場合、Simulink の入力または出力に直接影響しない関数呼び出しは生成コードに表示されません。
例
モデルに MATLAB Function を追加して入力信号を変更します。
[シミュレーション] タブで [ライブラリ ブラウザー] をクリックします。[Simulink] 、 [User-Defined Functions] を選択します。MATLAB Function ブロックを Simulink キャンバスにドラッグします。
ブロックをダブルクリックして MATLAB Function ブロック エディターを開きます。関数本体のコードを次のように置き換えます。
y = 2*u;
[親に移動] ボタン
をクリックしてモデルに戻ります。Sine Wave ブロックを入力信号として追加し、Scope ブロックを追加して MATLAB Function ブロックの入力と出力を取得します。
シミュレーションを実行し、Scope ブロックを開いてコードの効果を確認します。
拡張例
MATLAB Function ブロックを含むマスク ライブラリ サブシステムを使用したシミュレーションの実行とコードの生成
ライブラリ内のカスタム MATLAB Function ブロックを使用するモデルを使用したシミュレーションの実行とコードの生成。
MATLAB Function ブロックでの MATLAB 関数ファイルの呼び出し
MATLAB Function ブロックを使用して MATLAB 関数ファイルに記述されたコードを呼び出して実行する。
MATLAB Function ブロックを使用したレーダー追跡
この例では、MATLAB Function ブロックを使用して航空機の位置を推定するカルマン フィルターを作成する方法を示します。位置を推定した後、モデルは外部 MATLAB® 関数を呼び出して追跡データをプロットします。
制限
端子
入力
MATLAB 関数内の入力変数。実数値のスカラー、ベクトル、または行列として指定します。入力変数には、その変数の名前を使用した端子がそれぞれ関連付けられています。
MATLAB でサポートされていても、Simulink でサポートされないデータ型については、Simulink モデルと MATLAB Function ブロック内の関数との間で受け渡しできません。MATLAB Function ブロックではそれらのデータ型を使用できます。
このブロックに対する固定小数点データ型のサポートの詳細については、固定小数点データ型と MATLAB Function ブロック (Fixed-Point Designer)およびMATLAB Function ブロックを使用したデータ型オーバーライド (Fixed-Point Designer)を参照してください。
依存関係
入力端子を作成するには、ブロックを開き、[シンボル] ペインで入力変数を作成します。MATLAB Function ブロックの変数の作成と定義を参照してください。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| string
| fixed point
| enumerated
| bus
出力
MATLAB 関数内の出力変数。実数値のスカラー、ベクトル、または行列として指定します。出力変数には、その変数の名前を使用した端子がそれぞれ関連付けられています。
依存関係
出力端子を作成するには、ブロックを開き、[シンボル] ペインで出力変数を作成します。MATLAB Function ブロックの変数の作成と定義を参照してください。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| string
| fixed point
| enumerated
| bus
パラメーター
ブロック パラメーターを対話形式で編集するには、プロパティ インスペクターを使用します。Simulink ツールストリップから、[シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。
メモ
MATLAB Function ブロックには Subsystem ブロックのパラメーターも含まれており、ブロックを右クリックして [ブロック パラメーター (Subsystem)] をクリックするとアクセスできます。ただし、それらのブロック パラメーターを更新することは推奨されません。
MATLAB Function ブロックをアクティブにする方法を次の値のいずれかとして指定します。
継承
— Simulink モデルからの入力により MATLAB Function ブロックがアクティブになります。入力トリガーを定義すると、MATLAB Function ブロックはトリガー端子での Simulink 信号や関数呼び出しイベントに応じて実行されます。入力トリガーを定義しないでおくと、MATLAB Function ブロックはモデルから暗黙的にトリガーを継承します。これらの暗黙的なイベントは、ブロックに入力を提供する信号の離散または連続のサンプル時間です。
データ入力を定義すると、MATLAB Function ブロックは最も速いデータ入力のレートでサンプリングします。データ入力を定義しないでおくと、MATLAB Function ブロックは親サブシステムの実行動作で定義されたレートでサンプリングします。
離散
— ブロックの [サンプル時間] パラメーターで指定するレートを使用して MATLAB Function ブロックがアクティブになります。ブロックは指定されたレートに対応する一定の時間間隔で暗黙的イベントを生成します。モデルの他のブロックは異なるサンプル時間をもつことができます。連続
— メジャー タイム ステップ中にのみ MATLAB Function ブロックがアクティブになります。出力とローカル連続変数はメジャー タイム ステップ中とマイナー タイム ステップ中に計算されます。ブロックはゼロクロッシングを登録でき、状態の変化が発生するたびに Simulink モデルでブロックをサンプリングできます。ブロックはローカル連続変数の導関数を計算します。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、ブロックの MATLABFunctionConfiguration
オブジェクトまたは Stateflow.EMChart
オブジェクトにアクセスし、ドット表記を使用してオブジェクトのプロパティを変更します。
MATLABFunctionConfiguration
オブジェクトを使用する場合は、次のオプションを使用してプロパティを指定します。
パラメーター: | UpdateMethod |
値: | "Inherited" (既定値) | "Continuous" | "Discrete" |
Stateflow.EMChart
オブジェクトを使用する場合は、次のオプションを使用してプロパティを指定します。
パラメーター: | ChartUpdate |
値: | "INHERITED" (既定値) | "CONTINUOUS" | "DISCRETE" |
シミュレーション中に MATLAB Function ブロックがアクティブになる時間間隔を指定します。既定値は、ブロックが Simulink からサンプル時間を継承することを示します。サンプル時間の指定の詳細については、サンプル時間の指定を参照してください。
Subsystem ブロックのパラメーターでは [サンプル時間] パラメーターは使用しないでください。代わりに、プロパティ インスペクターを使用してください。
依存関係
このパラメーターを有効にするには、[更新方法] を [離散]
に設定します。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、ブロックの MATLABFunctionConfiguration
オブジェクトまたは Stateflow.EMChart
オブジェクトにアクセスし、ドット表記を使用してオブジェクトのプロパティを変更します。
パラメーター: | SampleTime |
値: | "-1" (既定値) | scalar | vector |
データ型: | string | char |
詳細設定
MATLAB Function ブロック内のデータが整数オーバーフローで飽和するかどうかを次の値のいずれかとして指定します。
on
— 整数をワード サイズが許容する最大の正または負の値に設定することにより飽和します。この設定は MATLAB の動作と同じです。off
— オーバーフロー状態の発生時にシミュレーション モードでランタイム エラーを生成します。Simulink Coder を使用してコードを生成するときの動作は、C 言語のコンパイラにより異なります。
ヒント
このパラメーターが
on
の場合、MATLAB は整数のオーバーフローやアンダーフローを検出するためのチェックをシミュレーション中に追加します。MATLAB Function ブロックのコードで整数のオーバーフローが発生しない場合は、このオプションを無効にした方が効率的です。Simulink Coder で生成されたコードは整数のオーバーフローやアンダーフローをチェックしません。したがって、このパラメーターが
off
の場合、予期できない結果になる可能性があります。このような場合、オーバーフローとアンダーフローをテストするためのモデルのシミュレーションを実行してからコードを生成します。このパラメーターの設定は整数の計算にしか影響しません。固定小数点や倍精度の計算には影響しません。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、ブロックの MATLABFunctionConfiguration
オブジェクトまたは Stateflow.EMChart
オブジェクトにアクセスし、ドット表記を使用してオブジェクトのプロパティを変更します。
パラメーター: | SaturateOnIntegerOverflow |
値: | true or 1 (既定値) | false or 0 |
データ型: | logical |
MATLAB Function ブロックが、シミュレーション中に次元が変化する入力と出力のデータをサポートするかどうかを指定します。このパラメーターが on
の場合、出力変数の [可変サイズ] プロパティを有効にして可変サイズの出力を定義できます。詳細については、可変サイズの MATLAB Function ブロック変数の宣言および可変サイズを参照してください。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、ブロックの MATLABFunctionConfiguration
オブジェクトまたは Stateflow.EMChart
オブジェクトにアクセスし、ドット表記を使用してオブジェクトのプロパティを変更します。
パラメーター: | SupportVariableSizing |
値: | true or 1 (既定値) | false or 0 |
データ型: | logical |
MATLAB Function ブロックが直達セマンティクスをサポートし、そのためブロックの出力が入力の値によって直接制御されるかどうかを指定します。このパラメーターが off
の場合、ブロックの出力はブロックの現在の状態のみに依存します。非直達を使用すると、フィードバック ループで MATLAB Function ブロックを使用し、代数ループを回避できます。詳細については、MATLAB Function ブロックでの非直達の使用を参照してください。
依存関係
このパラメーターを無効にするには、[更新方法] を [継承]
または [離散]
に設定する必要があります。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、ブロックの MATLABFunctionConfiguration
オブジェクトまたは Stateflow.EMChart
オブジェクトにアクセスし、ドット表記を使用してオブジェクトのプロパティを変更します。
パラメーター: | AllowDirectFeedthrough |
値: | true or 1 (既定値) | false or 0 |
データ型: | logical |
R2021b 以降
MATLAB Function ブロックが長さ 1 の次元をもつ出力変数を固定サイズとして扱うかどうかを次の値のいずれかとして指定します。
off
— 可変サイズをもつ変数として指定されているかどうかに関係なく、ブロックは少なくとも 1 つの次元の長さが 1 である出力変数を固定サイズとして扱います。on
— 可変サイズをもつ変数として指定されている場合、MATLAB Function ブロックはそれらの出力変数を可変サイズとして扱います。
詳細については、可変サイズを参照してください。
メモ
R2021b 以前のリリースでは、MATLAB Function ブロックは出力列ベクトルを常に 1 次元信号に変換します。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、ブロックの MATLABFunctionConfiguration
オブジェクトまたは Stateflow.EMChart
オブジェクトにアクセスし、ドット表記を使用してオブジェクトのプロパティを変更します。
パラメーター: | VectorOutputs1D |
値: | false or 0 (既定値) | true or 1 |
データ型: | logical |
R2023a 以降
少なくとも 1 つの次元の長さが 1 である変数が固定サイズかどうかを次の値のいずれかとして指定します。
on
— 次元 1 の可変サイズの変数は固定サイズです。off
— [可変サイズ] プロパティが有効になっているブロック内の変数は常に可変サイズです。
このパラメーターは、[可変サイズ] プロパティが有効になっている出力変数にのみ影響します。可変サイズを参照してください。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、ブロックの MATLABFunctionConfiguration
オブジェクトまたは Stateflow.EMChart
オブジェクトにアクセスし、ドット表記を使用してオブジェクトのプロパティを変更します。
パラメーター: | TreatDimensionOfLengthOneAsFixedSize |
値: | true or 1 (既定値) | false or 0 |
データ型: | logical |
固定小数点プロパティ
継承される固定小数点と整数の信号を Fixed-Point Designer™ fi
(Fixed-Point Designer) オブジェクトとして扱うかどうかを次の値のいずれかとして指定します。
Fixed-point
— MATLAB Function ブロックはすべての固定小数点入力を Fixed-Point Designer のfi
オブジェクトとして扱います。Fixed-point & Integer
— MATLAB Function ブロックはすべての固定小数点と整数入力を Fixed-Point Designer のfi
オブジェクトとして扱います。
詳細については、fi オブジェクトの作成方法 (Fixed-Point Designer)を参照してください。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、ブロックの MATLABFunctionConfiguration
オブジェクトまたは Stateflow.EMChart
オブジェクトにアクセスし、ドット表記を使用してオブジェクトのプロパティを変更します。
パラメーター: | TreatAsFi |
値: | "Fixed-point" (既定値) | "Fixed-point & Integer" |
MATLAB Function ブロックに対する既定の fimath
(Fixed-Point Designer) オブジェクト プロパティを次の値のいずれかとして指定します。
Same as MATLAB
— ブロックは現在の既定のfimath
オブジェクトと同じfimath
オブジェクト プロパティを使用します。テキスト ボックスが薄色表示され、現在のグローバルfimath
オブジェクトが読み取り専用形式で表示されます。Specify other
— テキスト ボックス内で独自のfimath
オブジェクトを指定します。これには 2 つの方法があります。fimath
オブジェクトをテキスト ボックス内で作成する。fimath
オブジェクトを MATLAB またはモデル ワークスペース内で作成して、その変数名をテキスト ボックスに入力する。このオプションを使用し、モデルを他のユーザーと共有する場合は、変数をモデル ワークスペースで定義します。
詳細については、fimath オブジェクトの作成 (Fixed-Point Designer)および固定小数点データ型と MATLAB Function ブロック (Fixed-Point Designer)を参照してください。
ヒント
MATLAB Function ブロックの
fimath
オブジェクトは、ブロックの内容に対するglobalfimath
(Fixed-Point Designer) オブジェクトとして動作します。ブロックは、このパラメーターのfimath
オブジェクト プロパティを、fi
オブジェクトとして扱うように選択した MATLAB Function ブロックに対するすべての固定小数点と整数の入力信号に関連付けます。MATLAB Function ブロックでfi
オブジェクトを作成すると、その他の考慮事項が発生します。fi
オブジェクトの作成時にfimath
オブジェクトがオブジェクトに関連付けられない場合、[MATLAB 関数 fimath] のプロパティに関係なく、fi
コンストラクターは既定のfimath
オブジェクト設定を使用します。fi
オブジェクトの作成後にオブジェクトで操作を実行する場合、オブジェクトは [MATLAB 関数 fimath] のプロパティを採用します。fi
コンストラクターでfimath
オブジェクトを指定する場合、fi
コンストラクターは値を量子化するときにそのfimath
オブジェクトに従います。fi
コンストラクターで指定されないfimath
オブジェクト設定では、いずれも [MATLAB 関数 fimath] で指定されたプロパティが使用されます。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、ブロックの MATLABFunctionConfiguration
オブジェクトまたは Stateflow.EMChart
オブジェクトにアクセスし、ドット表記を使用して関連するオブジェクトのプロパティを変更します。
MATLABFunctionConfiguration
オブジェクトを使用する場合は、次のオプションを使用してプロパティを指定します。
パラメーター: | FimathMode |
値: | "SameAsMATLAB" (既定値) | "UserSpecified" |
Stateflow.EMChart
オブジェクトを使用する場合は、次のオプションを使用してプロパティを指定します。
パラメーター: | EmlDefaultFimath |
値: | "Same as MATLAB Default" (既定値) | "Other:UserSpecified" |
ブロックの特性
ヒント
以下で定義された関数を呼び出すことができます。
Simulink Function ブロック。
チャート内の Stateflow® 関数。チャート内の関数を呼び出すには、[チャート レベルの関数をエクスポート] プロパティと [エクスポートされた関数をグローバルに可視として扱う] プロパティを有効にします。
既定では、MATLAB Function ブロックに
%#codegen
命令は含まれませんが、含まれている場合と同様にエラーがチェックされます。MATLAB Function ブロックに%#codegen
命令を追加しても、エラー チェックには影響しません。詳細については、コンパイル命令 %#codegenを参照してください。
拡張機能
実際のデータ型、または機能のサポートは、ブロックの実装に依存します。
Embedded Coder® ライセンスがある場合、Halide コードを生成できます。詳細については、Speed Up Generated Code Execution with Halide Code (Embedded Coder)を参照してください。
HDL Coder™ には、HDL の実装および合成されたロジックに影響する追加のコンフィギュレーション オプションがあります。実際のデータ型、または機能のサポートは、ブロックの実装に依存します。MATLAB Function ブロックの使用のベスト プラクティスについては、次を参照してください。
MATLAB Function ブロック内での hdlfimath 設定の使用と fi オブジェクトの指定 (HDL Coder)
MATLAB Function ブロックの設計ガイドライン (HDL Coder)
関数のインスタンス化可能なコードの生成 (HDL Coder)
MATLAB ループの最適化 (HDL Coder)
MATLAB 式のパイプライン (HDL Coder)
MATLAB Function (既定) | これは固定小数点データ型をもつ MATLAB Function ブロックの既定のアーキテクチャです。このアーキテクチャを使用する場合、MATLAB Function ブロックを囲むブロックについて、速度と面積の最適化を使用できます。MATLAB Function ブロック内のコードは最適化されません。 |
MATLAB Datapath | これは浮動小数点データ型をもつ MATLAB Function の既定のアーキテクチャです。このアーキテクチャを使用する場合、コード ジェネレーターは MATLAB Function ブロックを通常の Subsystem ブロックのように取り扱います。固定小数点型についてこのアーキテクチャを有効にすることで、MATLAB Function ブロック内のブロックに対して、および、他の Simulink ブロックを使用する MATLAB Function ブロックにわたって、速度と面積の最適化を使用できます。 この機能により、[ClockRatePipelining] や [FlattenHierarchy] のような Subsystem に対して指定する追加のプロパティを MATLAB Function ブロックに対して指定できます。 |
AdaptivePipelining | 合成ツール、ターゲット周波数、乗算器の語長に基づくパイプラインの自動挿入。既定の設定は |
BalanceDelays | あるパスに新しい遅延が導入されたことを検出し、それに一致する遅延を他のパスに挿入します。既定の設定は |
ClockRatePipelining | パイプライン レジスタを低速のデータ レートではなく高速のクロック レートで挿入します。既定の設定は |
ConstMultiplierOptimization | 正準符号付き桁数 (CSD) または因数分解された CSD による最適化。既定の設定は |
ConstrainedOutputPipeline | 既存の遅延を設計内で移動することによって出力に配置するレジスタの数。分散型パイプラインではこれらのレジスタは再分散されません。既定の設定は |
DistributedPipelining | パイプライン レジスタの分散、またはレジスタのリタイミング。既定の設定は |
DSPStyle | 乗算器のマッピングの合成属性。既定の設定は |
FlattenHierarchy | 生成された HDL コードから MATLAB Function ブロック階層を削除します。既定の設定は |
GuardIndexVariables | 行列へのアクセスを条件付き MATLAB ステートメントから取り除くかどうかを選択します。既定の設定は |
InputPipeline | 生成されたコードに挿入する入力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
InstantiateFunctions | 各関数について VHDL® |
LoopOptimization | ループを展開、またはストリームするか、最適化しません。既定の設定は |
MapPersistentVarsToRAM | 永続配列を RAM にマッピングします。既定の設定は |
OutputPipeline | 生成されたコードに挿入する出力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
ResetType | リセット ロジックの生成を抑制。既定値は |
SharingFactor | 単一の共有リソースにマッピングされる、機能的に等価なリソースの数。既定の設定は 0 です。リソース共有 (HDL Coder)も参照してください。 |
StreamingFactor | 時間多重化されてシリアルのスカラー データ パスに変換される、パラレル データ パスの数、またはベクトルの数。既定値は 0 であり、パラレル データ パスがそのまま実装されます。このプロパティを指定するには、[アーキテクチャ] を |
VariablesToPipeline | 警告
1 つ以上の指定された変数の出力でパイプライン レジスタを挿入します。変数のリストを、変数をスペースで区切った文字ベクトルとして指定します。このプロパティを指定するには、[アーキテクチャ] を |
HDL コード生成では、MATLAB Function ブロックの次の関数に対して半精度データ型がサポートされます。
all | and, & | any | cast | conj | ctranspose |
end | = | eq | == | ge, >= | gt, > |
half | inf | int8 | int16 | int32 | int64 |
isa | iscolumn | isempty | isequal | isfinite | isfloat |
isinf | isinteger | islogical | isnan | isnumeric | isreal |
isrow | isscalar | isvector | le, <= | length | logical |
lt, < | max | min | minus, - | NaN | ndims |
ne, ~= | not | numel | or, | | plus, + | prod |
reshape | single | size | sqrt | sum | times, .* |
transpose | uint8 | uint16 | uint32 | uint64 | uminus |
uplus | vertconcat | - | - | - | - |
このブロックは、複素信号のコード生成をサポートしています。
複素数データ型のサポート (HDL Coder)も参照してください。
hdlfimath
設定の使用hdlfimath
関数は、HDL コード生成用に最適化された fimath
プロパティを定義するユーティリティです。詳細については、MATLAB Function ブロック内での hdlfimath 設定の使用と fi オブジェクトの指定 (HDL Coder)を参照してください。
HDL Coder では、次のデータ型をもつ調整可能なパラメーターと調整不可のパラメーターの両方がサポートされます。
スカラー
ベクトル
複素数
構造体
列挙型
詳細については、調整可能なパラメーターの DUT 端子を生成する (HDL Coder)およびMATLAB Function ブロックの設計ガイドライン (HDL Coder)を参照してください。
Matlab Function ブロックを含むモデルの HDL コードを生成するには、次のようにします。
[コンフィギュレーション パラメーター] ダイアログ ボックスで、[診断] をクリックし、[代数ループ] パラメーターを
[なし]
または[警告]
に設定します。Matlab Function ブロックのブロック マスクを開き、[Atomic サブシステムとして扱う] パラメーターと [代数ループの発生の最小化] パラメーターを選択します。
ブロックに System object™ が含まれている場合、ブロック入力は非離散 (定数または
Inf
) サンプル時間をもつことはできません。HDL Coder は、関数の入力と出力として同じ変数を含む MATLAB Function をサポートしていません。たとえば、次の MATLAB コードはサポートされません。
function y = myFun(y) %#codegen y = 3 * y;
ブロックは、ネイティブ浮動小数点モードでのみ浮動小数点データ型をサポートします。
MATLAB Function ブロックからの HDL コード生成でサポートされる MATLAB 言語のサブセットについては、サポートされている MATLAB データ型、演算子、制御フロー ステートメント (HDL Coder)を参照してください。
UseExternalDefinition | 生成コードでのブロック定義を抑制します。既定の設定は |
実際のデータ型、または機能のサポートは、ブロックの実装に依存します。
バージョン履歴
R2011a で導入新しい [長さ 1 の次元を固定サイズとして扱う] パラメーターを使用して、出力引数を少なくとも 1 つの次元の長さが 1 である場合に MATLAB Function ブロックでどのように扱うかを指定できます。R2023a より前では、可変サイズをもつ変数として指定されているかどうかに関係なく、MATLAB Function ブロックは長さ 1 の次元をもつ出力変数を固定サイズとして扱います。
[出力列ベクトルを 1 次元データとして解釈] パラメーターを使用して、MATLAB Function ブロックで列ベクトルを 2 次元または 1 次元のデータとして出力できるようになりました。
ラピッド アクセラレータ モードでシミュレートするときに MATLAB Function ブロックについてのランタイム エラーをレポートするには、[メモリの整合性チェックを有効にする] コンフィギュレーション パラメーターを [常にオン]
に設定します。
MATLAB Function ブロックで 64 ビット整数データがサポートされるようになりました。int64
と uint64
のデータ型が、語長 64 ビット、小数部の長さ 0 の固定小数点数として実装されます。
MATLAB Function ブロックで Simulink の string がサポートされるようになりました。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)