主要内容

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

coder.extrinsic

説明

coder.extrinsic (函数函数を外部関数として宣言します。コ,ドジェネレ,タ,は外部関数の本体のコ,ドを生成せず,代わりにmatlab®エンジンを使用して呼び出しを実行します。この機能は,実行時にmatlabエンジンが使用可能な場合にのみ使用できます。MATLABエンジンが使用可能な状況の例としては、MEX 関数の実行、Simulink®シミュレ,ション,またはコ,ド生成時(“コンパ电子邮箱ル時”とも呼ばれる)の関数呼び出しが挙げられます。

スタンドアロンコードの生成中に,コードジェネレーターは外部関数が呼び出し元の関数の出力に影響を与えるかどうか判断しようとします。たとえば,出力変数にmxArraysを返すことによって,これを実行します。出力に変化がない場合,コードジェネレーターはコード生成を進めますが,生成コードから外部関数を除外します。影響する場合,コンパ。

coder.extrinsicを使用して外部関数として宣言した関数では,coder.cevalを使用することはできません。

コ,ド生成の範囲外では,関数coder.extrinsicは無視されます。

coder.extrinsic (function1, ... ,functionN)function1からfunctionNまで外部関数として宣言します。

coder.extrinsic (的同步:,函数1,…functionN)は,functionNを介した外部関数function1の呼び出しの前後で,MATLAB関数と墨西哥人関数との間のグローバルデータの同期を有効にします。少数の外部呼び出しのみがグロ,バルデ,タを使用または変更する場合,グロ,バル同期モ,ドを在mex -函数进入和退出に設定してすべての外部関数呼び出しの前後で同期を無効にします。グロ,バルデ,タを修正する外部呼び出しに対してのみ,的同步:オプションを使用して同期を有効にします。

定数のグローバルデータに対しては,外部関数の呼び出し後にMATLAB関数と墨西哥人関数との整合性の検証を有効にします。

グロ,バルデ,タのためのコ,ド生成を参照してください。

coder.extrinsic (“同步:掉”,函数1,…functionN)は,functionNを介した外部関数function1の呼び出しの前後で,MATLAB関数と墨西哥人関数との間のグローバルデータの同期を無効にします。少数の外部呼び出しを除き,ほとんどの外部呼び出しでグローバルデータを使用または修正する場合,グローバルデータを修正しない外部呼び出しに対しては,“同步:掉”オプションを使用して同期を無効にします。

定数のグローバルデータに対しては,外部関数の呼び出し後にMATLAB関数と墨西哥人関数との整合性の検証を無効にします。

グロ,バルデ,タのためのコ,ド生成を参照してください。

すべて折りたたむ

Matlab関数补丁はコ,ド生成でサポ,トされていません。この例は,补丁を外部matlab関数として宣言することにより,生成されたmex関数で补丁の機能を引き続き使用する方法を説明します。

このmatlabコ,ドは补丁をロ,カル関数create_plotの外部関数として宣言します。补丁を外部関数として宣言することにより,补丁のコ,ド生成を行わないようコ,ドジェネレ,タ,に指示します。代わりに,コ,ドジェネレ,タ,は补丁を実行のためにmatlabに送ります。

コ,ドジェネレ,タ,では,関数など,多くの一般的なmatlab可視化関数が外部関数として自動的に処理されます。

函数C =毕达哥拉斯(a,b,color)% # codegen计算一个直角三角形的斜边%,并将三角形显示为补丁对象。C =√(a^2 + b^2);Create_plot (a, b, color);结束函数Create_plot (a, b, color)声明补丁为外部补丁coder.extrinsic (“补丁”);X = [0;a;a];Y = [0;0;b];补丁(x, y,颜色);轴(“平等”);结束

毕达哥拉斯のmex関数を生成します。また,コ,ド生成レポ,トを生成します。

codegen报告毕达哥拉斯arg游戏{1,1, [.]3 .3 .3]}

レポ,トで,create_plotのmatlabコ,ドを表示します。

レポ,トでは,関数补丁と関数が強調表示され,これらが外部関数として処理されることを示します。

墨西哥関数を実行します。

Pythagoras_mex (3,4, [1.0 0.0 0.0]);

MATLABに,直角三角形のプロットが赤い补丁オブジェクトとして表示されます。

入力引数

すべて折りたたむ

外部関数として宣言されるmatlab関数の名前。

例:coder.extrinsic(“补丁”)

デ,タ型:字符

制限

  • 外部関数呼び出しには,パフォ,マンスに影響する可能性のある何らかのオ,バ,ヘッドがあります。外部関数呼び出しで渡される入力デタはmatlabに指定しなければなりません。これにはデ,タのコピ,作成が必要になります。関数に出力データが含まれている場合、このデータは MEX 関数環境に再転送しなければなりません。これにもコピーが必要になります。

  • コ,ドジェネレ,タ,は,coder.extrinsicを使用したプラベトフォルダ内の関数の呼び出しをサポトしていません。

  • コ,ドジェネレ,タ,は,coder.extrinsicを使用したロ,カル関数の呼び出しをサポ,トしていません。

ヒント

  • コ,ドジェネレ,タ,では,情节disp数字など,多くのmatlab可視化関数が外部関数として自動的に処理されます。coder.extrinsicを使用してそれらを外部関数として明示的に宣言する必要はありません。

  • 外部関数として宣言しなければならない関数を検出するには,関数coder.screenerを使用します。この関数は,MATLABコード内にコード生成でサポートされない機能や関数がないかどうかを調べるコード生成の準備状態ツールを実行します。

R2011aで導入