Problem converting std::vector type to mwArray
显示 更早的评论
Hello,
I am newbie usign Matlab C++ libraries.I am trying to convert a vector, for example Powervector, to the mwArray type so that by matlab function can use it. The Powervector has the following format in C++, std::vector<double> Powervector . Code that I use:
mwArray Tmsa(1, TotalPower.size(), mxDOUBLE_CLASS);
Tmsa.SetData(&TotalPower[0], TotalPower.size());
I have a problem when I debbug it. Debbuger show this message:
_"An unhandled exception of type 'System.AccessViolationException' occurred in DevicePrognosis.exe
Additional information: Attempted to read or write protected memory. This is often an indication that other memory is corrupt."_
Any idea how can I fix it?
Thank you.
回答(2 个)
Kaustubha Govind
2012-5-23
Strange, seems like that should work. How about if you try the documentation example:
double rdata[4] = {1.0, 2.0, 3.0, 4.0};
mwArray a(2, 2, mxDOUBLE_CLASS);
a.SetData(rdata, 4);
Just want to see if the issue has something to do with STL containers or heap-allocated data.
2 个评论
enrique nares
2012-5-29
Kaustubha Govind
2012-5-29
Then it looks like there is some other issue with your application. Have you initialized the MCR by calling mclInitializeApplication? There is an example in the documentation that does a similar set of commands as I suggested in my initial answer. Type "edit([matlabroot '/extern/examples/compiler/matrixdriver.cpp'])" at the MATLAB prompt to see it.
enrique nares
2012-5-30
0 个投票
1 个评论
Kaustubha Govind
2012-6-6
If you need to create a char matrix, you might be able to use this constructor: http://www.mathworks.com/help/releases/R2011b/toolbox/compiler/mwarraymwsizenum_stringsconstcharstr.html
If you need a cell-array of strings, you probably need to loop over each element and use the Get and Set methods as in the example here: http://www.mathworks.com/help/releases/R2011b/toolbox/compiler/voidsetconstmwarrayarr.html
类别
在 帮助中心 和 File 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!