1

Matlab コーダーを使用して単純なコードを C++ に変換しました。ただし、私の主な問題は、その出力を取得できないことです! emxArray_real_T 型の出力を C++ 配列に変換して印刷するにはどうすればよいですか?

4

1 に答える 1

1

動的に割り当てられた配列の C コード インターフェイス

生成されたコードでは、MATLAB は動的に割り当てられたデータを emxArray と呼ばれる構造体型として表します。MATLAB mxArray の埋め込み可能なバージョンである emxArray は、すべての基本型に特化したデータ型のファミリです。emxArray 構造体の定義

typedef struct emxArray_<baseTypedef> {
    <baseType> *data;
    int *size;
    int allocatedSize;
    int numDimensions;
    boolean_T canFreeData; 
} emxArray_<baseTypedef>;

baseTypedef は、baseType に対応する rtwtypes.h 内の定義済みの型です。たとえば、上限が不明な基本型 double の emxArray の定義は次のとおりです。

typedef struct emxArray_real_T {
    double *data;    //<<<<<<<<<<<<<<< RIGHT HERE
    int *size;
    int allocatedSize;
    int numDimensions;
    boolean_T canFreeData; 
} emxArray_real_T;

double に対応する定義済みの型は real_T です。組み込みデータ型とrtwtypes.hの定義済み型との対応の詳細については、

http://www.mathworks.com/help/fixedpoint/ug/c-code-interface-for-unbounded-arrays-and-structure-fields.html?refresh=true

于 2015-10-06T16:51:52.303 に答える