Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Pasar argumentos de matriz aJavaMATLAB

Argumentos de matriz 2-D para funcionesMATLAB

Algunas funciones aceptan una matriz 2-D como un único argumento de entrada y utilizan las columnas de la matriz por separado.MATLAB® De forma predeterminada, si se pasa una matriz 2-D a from, la matriz se divide en argumentos independientes a lo largo de la segunda dimensión.MATLABJava® Para evitar este problema, convierte la matriz 2-D en:Object

double[][] data = {{1.0, 2.0, 3.0}, {-1.0, -2.0, -3.0}}; HandleObject[] h = eng.feval("plot", (Object) data); 

Los arrays multidimensionales

y utilizar diferentes representaciones para mostrar matrices multidimensionales.MATLABJava Sin embargo, las expresiones de indexación producen los mismos resultados. Por ejemplo, este código de ejemplo define una matriz con tres dimensiones en.MATLAB A continuación, se pasa la variable de matriz y se comparan los resultados de las referencias indexadas.Java

import com.mathworks.engine.*; import java.io.StringWriter; import java.util.Arrays;  public class ArrayIndexing {     public static void main(String[] args) throws Exception {         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,:)",writer,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]);     } }

Aquí está la salida del programa que muestra cómo y mostrar las matrices.MATLABJava En:MATLAB

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

Estos son los resultados que muestran la referencia indexada al primer elemento de cada dimensión externa:

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

En y, los resultados de la expresión indexada son los mismos.MATLABJava

Temas relacionados