Main Content

mexGetVariablePtr (C および Fortran)

別のワークスペースからの変数への読み取り専用ポインター

C 構文

#include "mex.h"
const mxArray *mexGetVariablePtr(const char *workspace, 
  const char *varname);

Fortran 構文

#include "fintrf.h"
mwPointer mexGetVariablePtr(workspace, varname)
character*(*) workspace, varname

説明

mexGetVariablePtr を呼び出して、指定された変数 varname の読み取り専用ポインターを MEX ファイル ワークスペースに取り込みます。このコマンドは、mxArray のデータや特性を検証するのに役立ちます。データまたは特性を変更する場合は、mexGetVariablePtr ではなく、mexGetVariablemexPutVariable と共に使用します。

データまたは特性を単に検証する場合は、mexGetVariablePtr によって優れたパフォーマンスが得られます。呼び出し側は配列へのポインターを渡すだけで済むためです。

入力引数

すべて展開する

mexGetVariablePtr により検索するワークスペース名。C では const char*、Fortran では character*(*) として指定します。使用可能な値は以下のとおりです。

base

ベース ワークスペース内の変数を検索します。

caller

呼び出し側ワークスペース内の変数を検索します。

global

グローバル ワークスペース内の変数を検索します。

別のワークスペースにある変数の名前。C では const char*、Fortran では character*(*) として指定します。これは mxArray ポインターではなく、変数名です。

出力引数

すべて展開する

成功時における mxArray への読み取り専用ポインター。C では const mxArray*、Fortran では mwPointer として返されます。失敗した場合、C では NULL、Fortran では 0 が返されます。

メモ

mexGetVariablePtr は、MATLAB® で所有されている const mxArray へのポインターを返します。これは、MEX 関数内以外では使用できません。MEX 関数が MATLAB に戻った後に使用するためにポインターを保存しないでください。同様に、MEX 関数が mexCallMATLAB を呼び出した場合、MATLAB の呼び出し後に変数ポインターを使用しないでください。

制限

  • Simulink® の S-Function 内でこの関数を使用する場合は、MEX 関数の終了後に存続する S-Function ブロックの状態に、結果の plhs mxArray ポインターを格納しないでください。この関数の出力には一時スコープがあり、この出力は MEX 関数の呼び出しの終了時に自動的に破棄されます。

バージョン履歴

R2006a より前に導入