如何使用用户预定义的数据设置 mwArray?是不是可以混合使用 Matlab 库编译器和 mex 运行时?
Posted
技术标签:
【中文标题】如何使用用户预定义的数据设置 mwArray?是不是可以混合使用 Matlab 库编译器和 mex 运行时?【英文标题】:How to set mwArray with user predefined data? Is it possible mix Matlab library compiler & mex runtimes?如何使用用户预定义的数据设置 mwArray?是否可以混合使用 Matlab 库编译器和 mex 运行时? 【发布时间】:2018-10-17 06:43:44 【问题描述】:我开始使用 Matlab 生产库:Matlab Coder 和 Matlab library Compiler。我有几个问题
mxArray 和 mwArray 有什么区别? (下面回答)
是否可以使用用户预定义的数据设置 mxArray? (下面回答)
3.是否可以使用用户预定义的数据设置 mwArray?
4.是否可以从 mex 文件运行 Matlab 库编译器 DLL?
我将 matlab 库编译器 dll 与 matlab 编码器结合使用
coder.ceval(...)
第一次调用任何一个
mlcInitializeApplication(..)
或
MY_MATLAB_LIBRARY_NAME_Initialize(..)
return false 并且任何 mwArray 构造函数都会抛出异常
混合 mex 和 mlc 运行时库是否有问题?
** 顺便说一句 - 当我将 mex 代码编译为 C++ 时,一切正常。
【问题讨论】:
【参考方案1】:-
mxArray 和 mwArray 有什么区别?
(来自 Matlab)mwArray 是一个类(C++ 概念),用于将输入和输出传递给由 Matlab 编译器 SDK 生成的 C++ 函数 该类由一个围绕 MATLAB® 数组的薄包装器组成。 MATLAB 中的所有数据都由数组表示。 mwArray 类提供了数组创建和初始化所需的构造函数、方法和运算符,以及简单的索引
mxArray 是一个包含不透明类型的 C 类型。它可以保存数组或矩阵,主要作为 C mex 文件的输入/输出。
** 我猜 mx 计划是针对 mex 而 mw 计划是针对 matlab 包装器,但我不确定。
-
是否可以使用用户预定义的数据设置 mxArray - 是的
Here is an example
mxArray *output[];
output[0] = mxCreateNumericArray(ndim, dim, mxDOUBLE_CLASS, mxREAL);
outData = mxGetPr(yourPtr);
3.是否可以使用用户预定义的数据设置 mwArray?我不知道
-
是否可以从 mex 文件运行 Matlab 库编译器 DLL?
来自 Matlab 工程师:不能混合使用 mlc 和 mex 运行时。
【讨论】:
以上是关于如何使用用户预定义的数据设置 mwArray?是不是可以混合使用 Matlab 库编译器和 mex 运行时?的主要内容,如果未能解决你的问题,请参考以下文章
如何在“mwArray *”和“mxArray *”之间传输数据?