我想在 C++ 独立应用程序的 MAT 文件中访问自定义 MATLAB 类的属性。自定义类是在 MATLAB 中创建的类,如下所示:
classdef customClass
properties
myProp
end
methods
function obj = customClass(arg1,arg2)
obj.myProp = arg1 + arg2
end
end
end
此类的一个实例现在保存到一个 MAT 文件中,并且应该由一个独立的 C 应用程序访问。
显然,MATLAB 提供了一个用于在 C 应用程序中读取 MAT 文件的库。这适用于“普通”类型,并且 API 似乎提供了mxGetProperty
访问自定义对象的功能。但是,如果我尝试使用此函数运行一个最小示例,它会失败并在management.cpp:671
. 最小的例子是:
#include <iostream>
#include "mat.h"
int main()
{
MATFile* file = matOpen("test.mat", "r");
if (file == nullptr)
std::cout << "unable to open .mat" << std::endl;
mxArray* customClass = matGetVariable(file, "c");
if (customClass == nullptr)
std::cout << "unable to open tcm" << std::endl;
mxArray* prop = mxGetProperty(customClass, 0, "myProp");
if (prop == nullptr)
std::cout << "unable to access myProp";
}
仔细查看文档会发现限制:
mxGetProperty
不支持独立应用程序,例如使用 MATLAB 引擎 API 构建的应用程序。
是否有任何其他可能customClass
从独立的 C++ 应用程序访问 MAT 文件中的 a ?