在MatLab中将Java方法参数调用到数组中

时间:2017-10-08 14:47:31

标签: java arrays matlab function

在MatLab中为JAR文件创建java类路径之后。我正在调用java方法,它返回每1秒double类型的参数。如何将此返回参数保存到数组中?

import com.IPConn;
import com.V2;             % Java Class from JAR file
import java.util.ArrayList;

al = handle(V2(UI, ipcon), 'CallbackProperties'); % creating device Object which is the hardware(micro controller) sends the data
set(al,'callback',@(handles,event) event.getsource);
al.period(1000);           % This gives the event.getsource for every 1 sec

有没有办法通过使用Java Array List导入或其他一些函数将这些循环的getsource值存储到数组中,例如A = [250; 500; ....]?

1 个答案:

答案 0 :(得分:0)

如果我从你的问题中正确理解,你有一个返回int的java方法。这个java方法从Matlab多次调用,你想将它的输出存储在Matlab的数组中。

以下是如何做到这一点:

Java代码:

import java.util.Random;
public class StackOverflow {
    public static int getRandomInt() {
        int max = 10;
        int min = 1;
        Random random = new Random();
        return random.nextInt(max - min + 1) + min;
    }
}

将它构建到jar中并在Matlab中调用它,如下所示:

javaclasspath('/full/path/to/your.jar')
import StackOverflow
so = StackOverflow;
A = zeros(1,5);
for i=1:5
    A(i) = so.getRandomInt;
end

结果变量A将具有您想要的数组。