2017-04-14 17 views
1

だから私は3dマトリックスであるmatlabファイルを持っています。私はC + +を使用して、特にmatio.hでファイルを読み込んでいますが、実際のデータを読み込む際にはいくつかの問題や混乱があります。私はデータの次元、ランク、名前の数を調べる方法を知っていますが、実際にデータを読み込むのは難しい部分です。現在私は持っていますMatioを使ってC++で3d matlabファイルを開く

mat_t *mat = Mat_Open(result, MAT_ACC_RDONLY); 
matvar_t *matvar; 
matvar = Mat_VarReadNExtInfo(mat); 
int r = matvar->dims[0]; 

私はmatvar->データポインタの使い方について混乱していると思います。

答えて

0

あなたは使用して変数を選択することができます。

matvar_t *matVar = NULL;  
matVar = Mat_VarRead(mat, (char*)"VarName"); 

データを読むことによって可能である:

unsigned Size = matVar->nbytes/matVar->data_size ; 
const double *Data = static_cast<const double*>(matVar->data) ; 
for(int i=0; i<Size; ++i) 
{ 
    std::cout<<"\t["<<i<<"] = "<<Data[i]<<"\n" ; 
} 

それはCのコードであるなどの値がメモリにお互いの背後にあります。このソリューションでは、次元を使用して二重配列を3D配列に再構成する必要があります。

別の解決策は、関数Mat_VarReadDataAllを使用している可能性があります。

関連する問題