MATLAB(.NET Assembly)数据类型问题:MWArray到字符串的转换

时间:2018-10-05 14:35:10

标签: c# .net matlab matlab-deployment

我正在使用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构建器有经验可以帮助我吗?真的让我感到困惑。

非常感谢您的帮助!

1 个答案:

答案 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);