Выведите матрицу с c ++ и mex
У меня проблема с моим кодом C ++. Я хочу вернуть матрицу k-измерений из моей программы cpp в Matlab.
Матрица, которую я хочу передать, хранится вall_data
и является матрицей размера(npoints+1) x ndims
.
Я искал, как это сделать, и я придумал:
//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 ];
Но это не работает, так какall_data
этоvector<vector<double>>
переменная, и Matlab говорит:
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
Кто-нибудь может мне помочь? Большое спасибо!