【问题标题】:Define 2D array with C++ MATLAB API使用 C++ MATLAB API 定义二维数组
【发布时间】: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 示例都是一个很好的起点

标签: c++ matlab


【解决方案1】:

问题中的代码定义了一个二维 MATLAB 矩阵。 我的问题在于读取的矩阵数据。

【讨论】:

  • @RodyOldenhuis,定义二维矩阵代码?如果是这样,这是问题中的代码
猜你喜欢
  • 1970-01-01
  • 2019-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-29
  • 1970-01-01
  • 2011-03-27
相关资源
最近更新 更多