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.
Puede ejecutar funciones desde el uso de los métodos y.MATLAB®Java®MatlabEngine
feval
fevalAsync
Estos métodos funcionan como la función.MATLABfeval
Utilice y cuando desee devolver el resultado de la ejecución de la función a o para pasar argumentos de.feval
fevalAsync
JavaJava
Para llamar a una función:MATLAB
Pase el nombre de la función como una cadena.
Defina los argumentos de entrada requeridos por la función.MATLAB
Especifique el número de salidas que se esperan de la función (1 se asume si no se especifica).MATLAB
Defina el tipo devuelto adecuado para las salidas de la función.MATLAB
Utilice escritores para redirigir la salida de la ventana de comandos a.MATLABJava
También puede utilizar los métodos y para evaluar expresiones.MatlabEngine
eval
evalAsync
MATLAB Estos métodos le permiten crear variables en el espacio de trabajo, pero no devuelven valores.MATLAB
Este código de ejemplo utiliza la función para encontrar la raíz cuadrada de los elementos en una matriz de dobles.MATLABsqrt
El método devuelve una matriz doble que contiene los resultados de la llamada a la función.feval
sqrt
import com.mathworks.engine.*; public class javaFevalFunc{ public static void main(String[] args) throws Exception{ MatlabEngine eng = MatlabEngine.startMatlab(); double[] a = {2.0 ,4.0, 6.0}; double[] roots = eng.feval("sqrt", a); for (double e: roots) { System.out.println(e); } eng.close(); } }
Este código de ejemplo utiliza la función para encontrar el máximo común divisor y los coeficientes de Bézout de los dos valores enteros pasados como argumentos de entrada.MATLABgcd
El método devuelve una matriz de objetos que contiene los resultados de la llamada a la función.feval
gcd
Los valores devueltos son enteros.
Dado que la función devuelve tres argumentos de salida, especifique el número de valores devueltos como el primer argumento al método.MATLABgcd
feval
import com.mathworks.engine.*; public class javaFevalFcnMulti { public static void main(String[] args) throws Exception { MatlabEngine eng = MatlabEngine.startMatlab(); Object[] results = eng.feval(3, "gcd", 40, 60); Integer G = (Integer)results[0]; Integer U = (Integer)results[1]; Integer V = (Integer)results[2]; eng.close(); } }
Los métodos y permiten especificar el número de argumentos de salida devueltos por la función.MatlabEngine
feval
fevalAsync
MATLAB De forma predeterminada, se supone que el número de argumentos de salida de la función es.MATLAB1
Si desea llamar a una función sin salidas o más de una salida, especifique ese número como el primer argumento pasado a o.MATLABfeval
fevalAsync
Por ejemplo, este código llama a la función con la sintaxis de tres argumentos de salida:MATLABgcd
Object[] results = eng.feval(3, "gcd", 40, 60);
funciones pueden comportarse de manera diferente dependiendo del número de salidas solicitadas.MATLAB Algunas funciones no pueden devolver ninguna salida o un número especificado de salidas. Por ejemplo, la función mantiene la ejecución durante un número especificado de segundos.MATLABpause
Sin embargo, si llama con un argumento de salida, la función devuelve inmediatamente con un valor de estado.pause
Por lo tanto, este código no causa pausa porque solicita un argumento de salida.MATLABfeval
eng.feval("pause", 10);
Para pausar la ejecución de los 10 segundos solicitados, especifique el número de salidas como.MATLAB0
eng.feval(0, "pause", 10);
Nota
Para asegurarse de que se llama a una función sin salidas, especifique el número de argumentos devueltos como.MATLAB0