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.
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.MatlabEngine
feval
fevalAsync
eval
evalAsync
MATLAB
El comando muestra información sobre las variables de espacio de trabajo actuales en la ventana de comandos.MATLABwhos
MATLAB Utilice a para transmitir esta salida a.StringWriter
Java
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(); } }
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.JavaStringWriter
eval
Catch la excepción producida por el error y escriba el mensaje de error a.MatlatSyntaxException
MATLABJava
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(); } }