gpt4 book ai didi

java - 如何使用matlab编译器sdk编译类?

转载 作者:太空宇宙 更新时间:2023-11-04 11:37:08 24 4
gpt4 key购买 nike

我想从 matlab 代码编译一个 java 包。我有一个 matlab 类(class):

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中我需要传递参数。但是我在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。构造函数包装函数的文件。该函数返回该类的一个对象。

function obj=createMyClassObject()
obj=MyClass();
end

创建一个新的m。带有包装函数的文件Wrapper 函数返回作为参数传递的 obj。

function obj= doSomethingWrapper(obj,x)    
obj.doSomething(x)
end

使用 Matlab Compiler SDK 编译这两个函数。类 Myclass m 文件也应该位于同一目录中。 Matlab Compiler SDK 自动识别依赖关系并将其显示在编译器选项中。

在 Java 中,您现在可以调用 createMyClassObject() 函数,您将收到 Matlab 对象。将此对象传递给 doSomethingWrapper() 函数。

关于java - 如何使用matlab编译器sdk编译类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43158483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com