Main Content

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

mxSetComplexDoubles (C)

mxDOUBLE_CLASS 配列内に複素数データ要素を設定

C 構文

#include "matrix.h"
int mxSetComplexDoubles(mxArray *pa, mxComplexDouble *dt);

説明

mxSetComplexDoubles を使用して、指定された配列内に mxComplexDouble データを設定します。

mxCreate* のすべての関数が、データ保持のためにヒープ領域を割り当てます。そのため、通常は、この関数を使用して配列の要素を初期化することはありません。その代わりに、この関数を呼び出して既存の値を新しい値に置換します。

入力引数

すべて展開する

mxDOUBLE_CLASS 配列へのポインター。

データ配列の最初の mxComplexDouble 要素へのポインター。dt は関数 mxCalloc または mxMalloc によって割り当てなければなりません。

出力引数

すべて展開する

関数のステータス。int として返されます。成功した場合、関数は 1 を返します。

paNULL の場合、関数は 0 を返します。

mxArray が非共有の mxDOUBLE_CLASS 配列ではない場合や、データが mxCalloc によって割り当てられない場合は、関数は失敗します。関数が失敗した場合は、次のようになります。

  • MEX ファイル — 関数は MEX ファイルを終了し、制御を MATLAB® プロンプトに戻します。

  • スタンドアロン (非 MEX ファイル) アプリケーション — 関数は 0 を返します。

既存のデータを mxArray にコピーするには、matlabroot/extern/examples/refbook フォルダー内の arrayFillSetPr.c の例を参照します。例の中のデータは mxDouble として定義されています。この例は、複素数を含む C 数値型のパターンとして使用できます。以下の値を含む配列があると仮定します。

2.0 + 3.0i
3.0 + 4.0i

複素数 mxDouble データ用にこの例を変更するには、次を行います。

  • データ変数を宣言する

    mxComplexDouble *dynamicData;
    const mxComplexDouble data[] = {{2.0, 3.0}, {3.0, 4.0}};
  • mxCOMPLEX 引数を指定して mxCreateNumericMatrix を呼び出す

  • mxSetDoublesmxSetComplexDoubles に置き換えて、C 配列を mxArray に配置する

API バージョン

この関数はインターリーブされた複素数 API で使用できます。この関数を使用して myMexFile.c をビルドするには、以下を入力します。

mex -R2018a myMexFile.c
R2018a で導入