Wyprowadza macierz za pomocą c ++ i mex
Mam problem z moim kodem c ++. Chcę zwrócić macierz wymiarów k z mojego programu cpp do Matlab.
Macierz, którą chcę przekazać, jest przechowywanaall_data
i jest matrycą wielkości(npoints+1) x ndims
.
Szukałem, jak to zrobić, i wymyśliłem:
//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 ];
Ale to nie działa, jakall_data
jestvector<vector<double>>
zmienna, a matlab mówi:
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
Czy ktoś może mi pomóc? Wielkie dzięki!