外部インタフェース/API リファレンス | ![]() ![]() |
mxArray
をMEX-ファイルから別のワークスペースにコピー
C 言語表示
#include "mex.h" int mexPutArray(mxArray *array_ptr, const char *workspace);
workspace
base |
name をカレントのMATLABワークスペースにコピーします。 |
caller |
name を実際にこのMEX-ファイルを呼び出したエントリ(M-ファイル、MEX-ファイル、MATLABワークスペース)のワークスペースにコピーします。 |
global |
name をグローバル変数のリストにコピーします。 |
戻り値
成功した場合は0、失敗した場合は1。考えられる失敗の原因は、array_ptr
がNULL
であることです。それ以外の可能性は、array_ptr
が関連する名前をもたないmxArray
をポイントしていることです(mxSetName
を呼び出して、nameとarray_ptr
を関連付けてください)。
詳細
mexPutArray
を呼び出すことによって、指定したmxArray
をユーザのMEX-ファイルから別のワークスペースにコピーします。mexPutArray
は、MATLAB、M-ファイル、MEX-ファイルのような他のエントリから指定した配列をアクセスできるようにします。
array_ptr
は変数名と混同しがちです。変数名はMATLABワークスペース内で操作されます。array_ptrs
はMEX-ファイル内で操作されます。mexPutArray
を呼び出すとき、array_ptr
を指定しますが、受け入れ側のワークスペースは、変数名を受け取ります。MATLABは、受け取ったmxArray
のname
フィールドを見て変数名を決定します。
同名の変数が指定したworkspace
に既に存在する場合は、mexPutArray
は以前の変数の内容を、新たなmxArray
の内容で書き換えます。たとえば、MATLABワークスペースが変数Peaches
をつぎのように定義するとします。
Peaches 1 2 3 4
mexPutArray
を呼び出してPeaches
をMATLABワークスペースにコピーします。
mxSetName(array_ptr, "Peaches") mexPutArray(array_ptr, "base")
その後、Peaches
の前の値は消え、mexPutArray
によって渡された値によって置き換えられます。
例題
examples
ディレクトリのmex
サブディレクトリのmexgetarray.c
を参照してください。
参考
![]() | mexPrintf | mexPutFull (廃版) | ![]() |