我有一个基本的 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 中,而是相反)。
It is 在 .NET 程序集中使用 Matlab 类。
有多种解决方法:
- 将您的变量定义为global,并使用包装其方法的几个函数来访问它
- 将您的 Matlab 类作为结构体中字段的值返回。
这是 (1) 的代码片段:
function CreateMyClass(st)
global myClass;
myClass = MyClass(st);
end
function DisplayMyClass()
global myClass;
myClass.display();
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)