【发布时间】:2016-05-04 07:55:14
【问题描述】:
我正在使用 MATLAB/C++ API。
我正在尝试从 2D C++ 数组创建 2D MATLAB 数组。这是我尝试过的:
double testCppArr[243][5];
// Fill the testCppArr with data
mwArray *testMatlabArr = new mwArray(243, 5, mxDOUBLE_CLASS);
testMatlabArr->SetData(testCppArr[0], 243 * 5);
这是为我创建的长度为 243×5 的向量,而不是 243 行和 5 列的矩阵。我知道这在内存中是一样的,但我想创建一个矩阵而不是向量。
错在哪里?
我也看过the MATLAB documentation,但没有找到解决办法
【问题讨论】:
-
我认为你不能在 C++ 中做到这一点(不是专家)。据我所知,要填充 2D 矩阵,您需要用循环填充它,迭代行 (243)。此外。 MATLAB 数据本质上是一维的(即使您创建了二维矩阵,它们在内存中也是一维的),所以即使您可以将二维矩阵复制到 C++ 中的二维矩阵,您仍然没有这样做,因为 MATLAB 是一维的.
-
@AnderBiguri,谢谢。你有迭代复制的例子吗?
-
任何 C++ 中二维数组的 memcopy 示例都是一个很好的起点