主要内容

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

coder.extrinsic

外部として関数を宣言しMATLABで実行

説明

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

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

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

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

メモ

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

编码器.Extrinsic(function1,。。。functionN)function1からfunctionNまで外部关节数として宣言ます。

编码器.Extrinsic(的同步:, function1,…functionN)は,外部关流function1からfunctionNまでの呼び出しの前後で,MATLAB実行と生成されたコードの実行または仿真金宝app软件シミュレーションとの間のグローバルデータの同期を有効にします。少数の外部呼び出しのみがグローバルデータを使用または変更する場合,グローバル同期モードを在mex功能入口和出口に設定してすべての外部関数呼び出しの前後で同期を無効にします。グローバルデータを修正する外部呼び出しに対してのみ,的同步:オプションオプション使用ししてををを效にし。

グローバルデータのためのコード生成(MATLAB编码器)を参照してください。

编码器.Extrinsic(“同步:掉”, function1,…functionN)は,外部关流function1からfunctionNまでの呼び出しの前後で,MATLAB実行と生成されたコード実行との間のグローバルデータの同期を無効にします。少数の外部呼び出しを除き,ほとんどの外部呼び出しでグローバルデータを使用または修正する場合,グローバルデータを修正しない外部呼び出しに対しては,“同步:掉”オプションオプション使使使ししを无效にします。

グローバルデータのためのコード生成(MATLAB编码器)を参照してください。

すべて折りたたむ

MATLAB関数补丁はコード生成でさててません。このこの例,补丁を外部MATLAB関数として宣言することにより,生成された墨西哥人関数で补丁の機能を引き続き使用する方法を説明します。

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

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

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

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

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

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

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

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

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

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

メモ

codegenコマンドを使用してmexファイルを生成するにに,关联毕达哥拉斯を仿金宝app真软件モデルのMATLAB函数ブロック内に配置すると方法ももますます。MATLAB函数ブロックはpythagoras_mexと同様の動作をします。

グラフ用およびおよびネットワーク用のmatlab关键词,コード生成ではサポートれれませんで,外部としてとして宣言することこと,生成さたmexコードでコードののののをををを引き続き引き続きををを引き続き引き続き引き続きするするするするする。

有向グラフのソースノードのインデックスとターゲットノードのインデックスを入力として受け入れ,グラフが非循環であるかどうかを判定するMATLAB関数喷火を定義します。関数喷火も有向グラフをプロットします。

関数喷火は,コード生成でサポートされない次の関数を呼び出します。

  • 情节:コードジェネレーターは,これらの関数を自動的に外部関数として取り扱います。

  • 有向图およびisdag.2:これらつの関数は,coder.extrnisic構造体を使用することで,明示的に外部関数として宣言されます。

函数isDAG = foo(源,目标)“有向图”,“isdag”);断言(numel(source) == numel(target))) G = diggraph (source,target);plot(G) isDAG = isDAG (G);结束

喷火の墨西哥人コードを生成します。入力を双型の非有界のベクトルであると指定します。

codegen喷火arg游戏{coder.typeof(0,正),coder.typeof(0,正)}

適切な入力を使用して,生成された墨西哥人関数foo_mexををます。

Foo_mex ([1 2 4 4],[2 3 3 1])
逻辑1

MATLABは次のグラフも表示します。

有四个顶点和四条边的有向无环图。

入力引数

すべて折りたたむ

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

例:编码器.Extrinsic('patch')

データ型:字符

制限

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

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

  • コードジェネレーターは,coder.extrinsicをを用した关键

ヒント

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

  • 外部関数として宣言しなければならない関数を検出するには,関数coder.screenerを关注し。この关键,matlabコード内に生成でサポートされない能やがないかどうかを调べる生成のどう状态ツールをツール行

R2011Aで导入