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.

Redirigir salida de ventana de comandos aMATLABJava

Salida a la ventana de comandosMATLAB

muestra los mensajes de error y la salida de las funciones que no se terminan con un punto y coma en la ventana de comandos.MATLAB®MATLAB Puede redirigir esta salida al uso de un.Java®java.io.StringWriter El,,, y los métodos admiten el uso de secuencias de salida para redirigir la salida.MatlabEnginefevalfevalAsyncevalevalAsyncMATLAB

Redirigir salidaMATLAB

El comando muestra información sobre las variables de espacio de trabajo actuales en la ventana de comandos.MATLABwhosMATLAB Utilice a para transmitir esta salida a.StringWriterJava

import  com.mathworks.engine.*; import java.io.*;  public class RedirectOutput {     public static void main(String[] args) throws Exception {         MatlabEngine engine = MatlabEngine.startMatlab();         // Evaluate expressions that create variables         eng.evalAsync("[X,Y] = meshgrid(-2:.2:2);");         eng.evalAsync("Z = X.*exp(-X.^2 - Y.^2);");         // Get the output of the whos command         StringWriter writer = new StringWriter();         eng.eval("whos", writer, null);         System.out.println(writer.toString());         writer.close();         eng.close();     } }

Redirigir mensajes de error aMATLABJava

Este código de ejemplo intenta evaluar una instrucción que tiene un error de sintaxis (comillas simples no balanceadas).MATLAB Al introducir esta sentencia, se produce un error:MATLAB

disp('Hello'')

devuelve este mensaje de error en la ventana de comandos:MATLAB

 disp('Hello'')       ↑ Error: Character vector is not terminated properly.

Para redirigir este mensaje de error a, utilice a con el método.JavaStringWritereval Catch la excepción producida por el error y escriba el mensaje de error a.MatlatSyntaxExceptionMATLABJava

import  com.mathworks.engine.*; import java.io.*;  public class javaRedirectOut {     public static void main(String[] args) throws Exception {         MatlabEngine engine = MatlabEngine.startMatlab();         StringWriter writer = new StringWriter();         try {             eng.eval("disp('Hello'')", null, writer);         } catch (MatlabSyntaxException e) {             System.out.println("Error redirected to Java: ");             System.out.println(writer.toString());         }         writer.close();         eng.close();     } }

Temas relacionados