主要内容

经过java.数组参数到马铃薯

2-D阵列参数马铃薯职能

一些matlab.®函数接受一个2-D阵列作为单个输入参数,并单独使用数组的列。默认情况下,如果将2-D数组传递给来自Java的MATLAB®,该数组沿第二维拆分为单独的参数。为防止此问题,将2-D阵列施放到目的

double [] [] data = {{1.0,2.0,3.0},{-1.0,-2.0,-3.0}};handleObject [] h = eng.feval(“plot”,(对象)数据);

多维阵列

Matlab和Java使用不同的表示来显示多维数组。但是,索引表达产生相同的结果。例如,此示例代码定义了MATLAB中具有三个维度的数组。然后将数组变量传递给Java,并比较索引引用的结果。

导入com.mathworks.eengine。*;导入java.io.stringWriter;导入java.util.arrays;公共类ArrayIndexing {公共静态void main(String [] args)抛出异常{matlabengine eng = matlabengine.startmatlab();StringWriter Writer = new StringWriter();Eng.eval(“A(1:2,1:3,1)= [1,2,3; 4,5,6];”);Eng.eval(“A(1:2,1:3,2)= [7,8,9; 10,11,12]”);double [] [] [] a = eng.getvariable(“a”);system.out.println(“java:\ n”+ arrays.deeptostring(a));Eng.eval(“A(1,1,:)”,作家,NULL); System.out.println("A(1,1,:) " + writer.toString()); System.out.println("Java [0][0][0] " + A[0][0][0]); System.out.println("Java [0][0][1] " + A[0][0][1]); } }

以下是显示MATLAB和Java如何显示阵列的程序输出。在Matlab:

一个(:,:,1)= 1 2 3 4 5 6a(:,:,2)= 7 8 9 10 11 12在Java中:[[[1.0,7.0],[2.0,8.0],[3.0,9.0]],[[4.0,10],[5.0,11.0],[6.0,12.0]]]

以下是显示对每个外部维度中的第一元素的索引引用的结果:

一个(1,1,:) ans(:,:,1)= 1 ans(:,:2)= 7 java [0] [0] [0] 1.0 java [0] [0] [1] 7.0

在Matlab和Java中,索引表达式的结果是相同的。

相关话题