converting vector<vector<double>> to mwArray

조회 수: 3 (최근 30일)
hnde
hnde 2011년 2월 22일
댓글: Jonathan Ingber Katz 2020년 11월 15일
Hello,
I am trying to pass a 2 dimensional vector (a matrix) in C++ to a C++ share library matlab function compiled by Matlab Compiler.
I am trying to convert this vector, for example myvect, to the mwArray type so that by matlab function can use it. The myvect has the following format in C++,
vector<vector<double>> myvect(2);
myvect[0].push_back(0.1);
myvect[0].push_back(0.2);
myvect[0].push_back(10);
myvect[0].push_back(20);
I am trying:
mwArray mymtrx(2, 2, mxDOUBLE_CLASS);
mymtrx.SetData(&mymtrx[0][0], 4);
But it does not work. The data in mymtrx is not the same as the data in myvect.
How can I convert myvectinto mwArray type?
Thank you

답변 (1개)

Kaustubha Govind
Kaustubha Govind 2011년 2월 22일
Did you have a typo calling SetData?
mwArray mymtrx(2, 2, mxDOUBLE_CLASS);
mymtrx.SetData(&myvect[0][0], 4);
  댓글 수: 4
hnde
hnde 2011년 2월 23일
Thank you for your answer.
It is exactly as you said. It works for the vector<double> case, but not for the vector<vector<double>> case.
I am out of ideas on how to do this.
Thank you for all your help.
Jonathan Ingber Katz
Jonathan Ingber Katz 2020년 11월 15일
As Kaustubha Govind said, this in the general case will not work for a vector of vectors. I believe the best way to do this is to recast your vector of vectors as a single vector.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Deploy to C++ Applications Using mwArray API (C++03)에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by