我正在使用MATLAB的集成.NET程序集生成器,但是数据类型和返回值存在问题。
我已经在MATLAB中编译了一个非常简单的小函数,并将其构建为.NET。
我可以调用名称空间,甚至可以调用函数。但是,我的函数返回一个字符串值,而MATLAB默认将其作为MWArray对象数据类型返回。但是,我知道该值是一个字符串,但是我不知道如何将其强制转换。
我的MATLAB函数如下:
function version = get_version()
foo ='1.0';
bar = strcat('foo-', foo);
version = string(bar);
end
然后在.NET中,我将其称为:
MWArray version;
version = xClass.get_version();
其中xClass是MATLAB内置类的名称。当我尝试将其转换为字符串时:
string str = version.ToString();
Console.WriteLine(str);
我刚收到:
Internal_Matrix_Reference____
但不像我期望的那样 foo-1.0 。
有人在MATLAB中使用.NET构建器有经验可以帮助我吗?真的让我感到困惑。
非常感谢您的帮助!
答案 0 :(得分:0)
显然,解决方案非常简单。 Matlab函数必须以其他方式返回版本:
function version = get_version()
foo ='1.0';
version = strcat('foo-', foo);
end
然后在.NET中按预期工作:
MWArray version;
version = xClass.get_version();
string str = version.ToString();
Console.WriteLine(str);