| 外部インタフェース/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 (廃版) | ![]() |