我有一个基本的Matlab类,我想在C#中实例化。
classdef MyClass
properties
Value
end
methods
function obj=MyClass(v)
obj.Value = v;
end
function display(obj)
disp(obj.Value);
end
end
end
然后将其内置到.DLL文件中,并将其与相关的Matlab命名空间(MathWorks.MATLAB.NET.Arrays,MathWorks.MATLAB.NET.Utility)一起导入C#项目。
在C#方面,我试图建立这个类的实例化:
Untitled2.MLTestClass matlab = new Untitled2.MLTestClass();
MWCharArray input = new MWCharArray("Initial");
MWArray[] result = matlab.MyClass(1, input);
在最后一行代码的末尾,result.Length = 1,result [0] = null。我不知何故希望以某种方式获得对新创建的Matlab对象的引用。我在想,这有可能吗?如果是,那么如何实现呢?如果不是,有办法解决吗? (我基本上有一个用C#编写的GUI组件,我不想在Matlab中集成,反过来,反之亦然)。
答案 0 :(得分:2)
在.NET程序集中使用Matlab类是not possible。 有很多解决方法:
以下是(1)的代码段:
function CreateMyClass(st)
global myClass;
myClass = MyClass(st);
end
function DisplayMyClass()
global myClass;
myClass.display();
end