主要内容

经过爪哇数组争论MATLAB

2-D数组的论点MATLAB功能

一些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”,(对象)data);

多维阵列

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

导入com.mathworks.Engine。*;导入java.io..stringwriter;导入java.util.arrays;公共类ArrayIndexing {public static 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(“ in 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:

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

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

a(1,1,:) ans(::,:,1)= 1 ans(::,::,2)= 7 Java [0] [0] [0] [0] 1.0 Java [0] [0] [0] [1] 7.0

在MATLAB和JAVA中,索引表达的结果相同。

相关话题