Saída de uma matriz com c ++ e mex
Eu tenho um problema com o meu código c + +. Eu quero retornar uma matriz de k-dimensions do meu programa cpp para o Matlab.
A matriz que eu quero passar é armazenada emall_data
e é uma matriz de tamanho(npoints+1) x ndims
.
Eu tenho procurado como fazer isso, e eu inventei:
//send back points
vector< vector <double> > indexes = mxGetPr(plhs[0]);
for (int i=0; i < (npoints1+1); i++)
for (int j=0; j < ndims1; j++)
indexes[ i ][ j ] = all_data[ i ][ j ];
Mas isso não funciona, comoall_data
é umvector<vector<double>>
variável e matlab diz:
error: conversion from 'double*' to non-scalar type
'std::vector<std::vector<double, std::allocator<double> >,
std::allocator<std::vector<double,
std::allocator<double> > > >' requested
Alguém pode me ajudar? Muito obrigado!