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.

Tipos de datos incorrectosJava

Cadena a vector de caracteresJavaMATLAB

Estructura de vectores de caracteres

Algunas funciones aceptan los pares nombre-valor como argumentos de entrada.MATLAB®struct El Engine API para proporciona la clase para crear esta estructura de datos y pasarlo a, donde se convierte en un.MATLABJava®com.mathworks.matlab.engine.StructJavaMATLABMATLABstruct

Algunas funciones que aceptan entradas requieren que los valores de campo sean vectores de caracteres () en lugar de Strings ().MATLABstructMATLABcharMATLABstring Para crear un con el tipo correcto de valores, convierta desde a matriz antes de pasar la variable a.JavaStructStringcharMATLAB

Puede utilizar el método para la conversión:toCharArray

char[] on = "on".toCharArray(); char[] yOut = "yOut".toCharArray(); char[] tOut = "tOut".toCharArray(); Struct simParam = new Struct("SaveOutput", on, "OutputSaveName",         yOut,"SaveTime", on, "TimeSaveName", tOut); 

Argumento de cadena a vector de caracteres

Cuando las funciones requieren entradas, puede convertir la llamada de función pasada a.MATLABcharJavaStringMATLAB Por ejemplo, la función requiere entrada:MATLABevalchar

double result = engine.feval("eval", "3+5");
Undefined function 'eval' for input arguments of type 'string'..

Pasar una matriz funciona correctamente.char

double result = engine.feval("eval", "3+5".toCharArray()); 

Establecer propiedades de objetos gráficos desdeJava

Puede establecer los valores de las propiedades de los objetos gráficos mediante el identificador del objeto.MATLAB Pase los nombres de propiedad y los valores de propiedad como matrices al pasar a funciones.JavacharMATLAB

double[][] data = {{1.0, 2.0, 3.0}, {-1.0, -2.0, -3.0}}; HandleObject[] h = eng.feval("plot", (Object)data); String property = ("HitTest"); String value = ("off"); eng.feval(0,"set", h, property.toCharArray(), value.toCharArray());

Entero a dobleJavaMATLAB

Algunas funciones, como restringir la entrada o valores de precisión.MATLABsqrtdoublesingle El motor convierte enteros en valores.MATLABJavaMATLABint32 Para las funciones que no aceptan valores enteros, asegúrese de pasar los valores numéricos apropiados.MATLAB

double result = engine.feval("sqrt", 4);
Undefined function 'sqrt' for input arguments of type 'int32'.

Pasar un doble funciona correctamente.

double result = engine.feval("sqrt", 4.0); 

Temas relacionados