| 外部インタフェース/API リファレンス | ![]() |
C 言語表示
#include "matrix.h" bool mxIsComplex(const mxArray *array_ptr);
戻り値
array_ptrが複素データを含む数値配列である場合は真。そうでない場合は、偽を出力します。array_ptrがセル配列または構造体配列を指す場合は、mxIsComplexは偽を出力します。
詳細
mxIsComplexを用いて、mxArrayに対して虚数成分が割り当てられているかどうかを決定します。虚数成分のポインタpiは、mxArrayが純粋に実数で、虚数データをもたない場合はNULLです。mxArrayが複素数である場合は、piは数値からなる配列を指すポインタです。
MEX-ファイルが呼び出されるとき、MATLABはすべての入力(右辺)配列を自動的に調べます。入力配列のいずれかが複素数である場合、MATLABはそれ以外のすべての入力配列に対して虚数データを保持するためのメモリを自動的に割り当てます。たとえば、Jestという名前のMEX-ファイルに、3つの入力変数(apricot, banana, carambola)を渡すとします。
apricot = 7; banana = sqrt(-5:5); carambola = magic(2); Jest(apricot, banana, carambola);
bananaは複素数です。そのため、配列apricotが純粋に実数であっても、MATLABはapricotの虚数成分を保持するための領域(1要素)を自動的に割り当てます。MATLABは、carambolaの存在しない虚数値を保持するための領域(4要素)も自動的に割り当てます。
言い換えると、MATLABはすべての入力配列を強制的に実数とするか、あるいは複素数とします。
例題
examplesディレクトリのmxサブディレクトリのmxisfinite.cを参照してください。
さらに、examplesディレクトリのrefbookサブディレクトリのconvec.c, phonebook.c, timestwo.c, xtimesy.cと、examplesディレクトリのmexサブディレクトリのexplore.c, yprime.c, mexlock.c, mexsettrapflag.cと、examplesディレクトリのmxサブディレクトリのmxcalcsinglesubscript.c, mxgeteps.c, mxgetinf.cを参照してください。
参考
| mxIsClass | mxIsDouble | ![]() |