我正在使用MATLAB Builder NE(MATLAB的集成.NET程序集生成器),但是数据类型存在问题.
我已经在MATLAB中编译了一个非常简单的小函数,并为.NET构建了该函数.我能够调用名称空间,甚至函数也可以.但是,我的函数返回一个值,而MATLAB默认将其作为object []数据类型返回.但是,我知道该值是一个整数,但是我不知道如何将其强制转换.
我的MATLAB函数如下所示:
function addValue = Myfunction(value1, value2)
addValue=value1+value2;
end
很简单吧?
然后在.NET中,我可以将其称为:
xClass.addValue (1, 3, 4);
其中xClass是MATLAB内置类的名称,但是当我尝试时:
int x = xClass.addValue (1, 3, 4);
C#错误了.
典型的.NET强制转换(int)不起作用.编译器声明无法将object []转换为int.
是否有人在MATLAB中具有.NET构建器的经验,可以帮助我解决这一问题?这真的让我陷入困境.我在零帮助下浏览了大多数MATLAB BUILDER文档(484页!).
解决方法:
我不再拥有Builder NE,但是如果我没记错的话,您可以执行以下操作:
using MathWorks.MATLAB.NET.Utility;
using MathWorks.MATLAB.NET.Arrays;
int x = ((MWNumericArray)(xClass.addValue(1, 3, 4)).ToScalarInteger();
在MWArray,MWCellArray,MWStructArray和MWNumericArray类型上使用IntelliSense和类浏览器比MATLAB文档有用得多.
说了这么多,我对您的addValue调用中的第一个参数感到困惑吗?
标签:matlab-deployment,matlab,c,net
来源: https://codeday.me/bug/20191210/2099698.html