如何使用用户预定义的数据设置 mwArray?是否可以混合使用 Matlab 库编译器和 mex 运行时?

How to set mwArray with user predefined data? Is it possible mix Matlab library compiler & mex runtimes?

我开始使用 Matlab 生产库:Matlab Coder 和 Matlab library Compiler。我有几个问题

  1. mxArray 和 mwArray 有什么区别? (答案如下)

  2. 是否可以使用用户预定义的数据设置 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 有什么区别?

(From Matlab) mwArray是一个class(C++概念),用于将输入和输出传递给Matlab编译器SDK生成的C++函数 此 class 由围绕 MATLAB® 数组的薄包装器组成。 MATLAB 中的所有数据都由数组表示。 mwArray class 为数组创建和初始化以及简单的索引提供了必要的构造函数、方法和运算符

mxArray 是一个包含不透明类型的 C 类型。它可以保存数组或矩阵,主要作为 C mex 文件的输入/输出。

** 我猜 mx 计划是针对 mex 的,而 mw 计划是针对 matlab wrapper 的,但我不确定。

  1. 是否可以使用用户预定义数据设置 mxArray - 是

Here is an example

    mxArray *output[];
    output[0] = mxCreateNumericArray(ndim, dim, mxDOUBLE_CLASS, mxREAL);
    outData = mxGetPr(yourPtr);

3。是否可以使用用户预定义的数据设置 mwArray?我不知道

  1. 是否可以从 mex 文件中 运行 Matlab 库编译器 DLL? 来自 Matlab 工程师:不可能混合 mlc 和 mex 运行次。