3
我有一个基本的Matlab类,我想在C#中实例化。如何在编译的.NET程序集中使用Matlab对象?
classdef MyClass
properties
Value
end
methods
function obj=MyClass(v)
obj.Value = v;
end
function display(obj)
disp(obj.Value);
end
end
end
这则建成一个.dll文件,并在C#项目与相关的Matlab的命名空间(MathWorks.MATLAB.NET.Arrays,MathWorks.MATLAB.NET.Utility)一起导入。
在C#侧,我试图建立因而这个类的一个实例:
Untitled2.MLTestClass matlab = new Untitled2.MLTestClass();
MWCharArray input = new MWCharArray("Initial");
MWArray[] result = matlab.MyClass(1, input);
通过代码的最后一行的末尾,result.Length = 1,并导致[0] = NULL 。我不知何故以某种方式获得了对新创建的Matlab对象的引用。我想知道,这甚至有可能吗?如果是的话,那么如何实现呢?如果不是,是否有解决方法? (我基本上有一个用C#编写的GUI组件,我不想在Matlab中集成它,反而是相反)。
感谢伟大的答案:)代码段和它本身已被证明是有见地的链接。 – filipcampeanu 2012-01-13 01:12:05
@ andrey-rubshtein目前最好的做法是什么?我在matlab中有多个类(有多个方法),每个类都有一个演示脚本。我想为每个类生成一个.NET程序集。 – nabrugir 2015-09-10 22:38:45