我想从 matlab 代码编译一个 java 包。我在matlab上有一堂课:
classdef MyClass
properties
Prop1
end
events
Event1
end
methods
function obj = MyClass() // no arguments
if nargin > 0
obj.Prop1 = arg;
end
end
end
end
我试图编译它,但它不起作用。不可能编译类。所以我尝试编写包装函数。在我的 Wrapper 函数中,我将 classdef 脚本称为 as 并返回对象。我可以编译这个函数,但在 java 中我需要传递参数。但是我在 matlab 中的类构造函数没有参数。
在 Java 中,我有一个 Class1,我为它创建了一个新对象。这个对象现在让我可以访问我的构造函数:
Class1 matlabClassTest = new Class1();
matlabClassTest.MyClass(???); // her it ask for arguments
需要对类的函数进行包装,因为matlab编译器sdk只能编译函数。
如果这是类:
classdef MyClass
properties
Prop1
end
methods
function obj= doSomething(obj,x)
obj.Prop1=x;
end
end
end
创建一个新的 m。构造函数 Wrapper 函数的文件。这个函数返回一个类的对象。
function obj=createMyClassObject()
obj=MyClass();
end
创建一个新的 m。带有包装函数的文件 Wrapper 函数返回作为参数传递的 obj。
function obj= doSomethingWrapper(obj,x)
obj.doSomething(x)
end
使用 Matlab Compiler SDK 编译这两个函数。类 Myclass m File 也应该在同一目录中。Matlab Compiler SDK 自动识别依赖项并将其显示在编译器选项中。
在 Java 中,您现在可以调用 createMyClassObject() 函数,您将收到 Matlab 对象。将此对象传递给 doSomethingWrapper() 函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句