我想从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脚本称为并返回该对象。 我可以编译这个函数但是在java中我需要传递arguments.But我在matlab中的类构造函数没有参数。
在Java中我有一个Class1,我创建了一个新的对象。 这个对象现在让我可以访问我的构造函数:Class1 matlabClassTest = new Class1();
matlabClassTest.MyClass(???); // her it ask for arguments
答案 0 :(得分:0)
有必要包装类的函数,因为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对象。将此Object传递给doSomethingWrapper()函数。