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.

Uso de estructuras enMATLABJava

EstructurasMATLAB

estructuras contienen datos y las hace referencia mediante nombres de campo.MATLAB® Cada campo puede contener cualquier tipo de datos. código accede a los datos de una estructura mediante la notación de puntos del formulario.MATLABstructName.fieldName La clase de una estructura es.MATLABstruct

La clase le permite:Java®com.mathworks.matlab.types.Struct

  • Crear un y pasarlo a.StructJavaMATLAB

  • Crear un y devolverlo a.MATLABstructJava

La clase implementa la interfaz.com.mathworks.matlab.types.Structjava.util.Map Sin embargo, no puede cambiar las asignaciones, las claves o los valores de los que se devuelven.StructMATLAB

Pase a funciónStructMATLAB

La función establece las propiedades de los objetos gráficos.MATLABsetMATLAB Para establecer varias propiedades en una llamada a, es conveniente utilizar un.setMATLABstruct Defina esto con nombres de campo que coincidan con los nombres de las propiedades que desea establecer.struct El valor al que hace referencia el campo es el valor asignado a la propiedad.

Este código de ejemplo realiza los pasos siguientes:

  • Empezar.MATLAB

  • Pase una matriz doble a la función.MATLABplot

  • Devolver el objeto Handle como un.MATLABJavacom.mathworks.matlab.types.HandleObject

  • Cree un uso de nombres y valores de propiedad.com.mathworks.matlab.types.Struct

  • Crear un gráfico y mostrarlo durante segundos.MATLAB5

  • Pase el y el a la función usando.HandleObjectStructMATLABsetfeval Esta función cambia el color y el ancho de la línea de los datos trazados.

  • Exporte el trazado al archivo nombrado y cierre la conexión del motor.jpegmyPlot

import com.mathworks.engine.*; import com.mathworks.matlab.types.*;  public class CreateStruct {     public static void main(String[] args) throws Exception {         MatlabEngine eng = MatlabEngine.startMatlab();         double[] y = {1.0, 2.0, 3.0, 4.0, 5.0};         HandleObject h = eng.feval("plot", y);         eng.eval("pause(5)");         double[] color = {1.0, 0.5, 0.7};         Struct s = new Struct("Color", color, "LineWidth", 2);         eng.feval("set", h, s);         eng.eval("print('myPlot', '-djpeg')");         eng.close();     } }

Obtener struct deMATLAB

La función crea ejes para un gráfico y devuelve una referencia de objeto de identificador.MATLABaxes La función, cuando se llama con una salida, devuelve a con las propiedades del objeto Graphics.MATLABgetMATLABstruct

Este código de ejemplo:

  • Crea un objeto Graphics y devuelve el identificador de objeto como un.MATLABHandleObject

  • Crea una estructura que contiene las propiedades y los valores del objeto Graphics y lo devuelve como un.MATLABStruct

  • Obtiene el valor de la propiedad de la.FontNameStruct

  • Intenta cambiar el valor de la clave, que produce una porque no es modificable.FontNameUnsupportedOperationExceptionStruct

import com.mathworks.engine.*; import com.mathworks.matlab.types.*;  public class GetStruct {     public static void main(String[] args) throws Exception {         MatlabEngine eng = MatlabEngine.startMatlab();         HandleObject h = eng.feval("axes");         Struct s = eng.feval("get", h);         Object fontName = s.get("FontName");         System.out.println("The font name is " + fontName.toString());         try {             s.put("FontName", "Times");         }catch(UnsupportedOperationException e){             e.printStackTrace();         }         eng.close();     } }

Temas relacionados