C++ 関数への clib.array の引き渡し
MATLAB® は、C++ ネイティブ配列と MATLAB オブジェクトの std::vector 型をラップする clib.array インターフェイスを提供します。用語 "clib 配列" は、これらの C++ 型の MATLAB オブジェクト表現を指します。
MATLAB の clib 配列は、対応する C++ ネイティブ配列または std::vector 型が、サポートされる C++ の構成要素 (関数の入力引数、出力引数およびデータ メンバー) によって使用される場合にのみ定義されます。ライブラリ ヘッダー ファイルには、配列要素型の定義が含まれている必要があります。構成要素は MATLAB によってサポートされている必要があり、C++ ライブラリへの MATLAB インターフェイスをビルドするときに組み込まれる必要があります。
C++ オブジェクトの MATLAB 配列の作成または MATLAB 配列から C++ 配列オブジェクトへの変換の詳細については、Create MATLAB Array of C++ Objectsを参照してください。
MATLAB の C++ オブジェクト配列のプロパティ
clibArray または clibConvertArray で作成した MATLAB 配列には以下のプロパティがあります。
プロパティ | 型 | アクセス | 説明 |
|---|---|---|---|
| double ベクトル | 読み取り専用 | C++ 配列の次元。たとえば、 |
| logical スカラー | 読み取り専用 |
|
MATLAB の C++ オブジェクト配列のメソッド
clibArray または clibConvertArray で作成した MATLAB 配列には以下のメソッドがあります。
メソッド | 構文 | 説明 |
|---|---|---|
| append([element]) | オプションで指定された要素を配列の最後に追加します。 プリミティブ型の MATLAB clib 配列の場合、入力引数を指定しないと、メソッドはゼロ値を追加します。 クラス型の MATLAB clib 配列の場合、入力引数を指定しないと、メソッドはクラス型の既定のコンストラクターによって作成されたオブジェクトを追加します。クラス型の既定のコンストラクターが削除された場合、ランタイム エラーが発生します。 |
| removeLast | 配列の最後の要素を削除します。MATLAB の clib 配列が空の場合、ランタイム エラーが発生します。 |
| double | 倍精度に変換します。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| logical |
|
| struct | 構造体に変換します。 |
メモリ管理
clibArray または clibConvertArray で作成された MATLAB 配列のメモリは MATLAB が管理します。自分で clib 配列のメモリを明示的に解放する必要はありません。C++ オブジェクトのメモリを MATLAB から解放する方法の詳細については、clibRelease を参照してください。