MATLAB® структуры содержат данные и ссылаются на них с помощью имен полей. Каждое поле может содержать данные любого типа. Код MATLAB обращается к данным в структуре с помощью записи через точку вида structName.fieldName
. Класс структуры MATLAB: struct
.
Java® com.mathworks.matlab.types.Struct
класс позволяет вам:
Создайте Struct
в Java и передать его в MATLAB.
Создайте struct
MATLAB и верните его на Java.
The com.mathworks.matlab.types.Struct
класс реализует java.util.Map
интерфейс. Однако вы не можете изменить отображения, ключи или значения Struct
возвращается из MATLAB.
Struct
в функцию MATLABMATLAB set
функция устанавливает свойства графических объектов MATLAB. Установка нескольких свойств в одном вызове равными set
, удобно использовать MATLAB struct
. Определите это struct
с именами полей, которые совпадают с именами свойств, которые вы хотите задать. Значение, на которое ссылается поле, является значением, присвоенным свойству.
Этот пример кода выполняет следующие шаги:
Запустите MATLAB.
Передайте двойной массив в MATLAB plot
функция.
Верните объект указателя MATLAB на Java как com.mathworks.matlab.types.HandleObject
.
Создайте com.mathworks.matlab.types.Struct
использование имен свойства и значений.
Создайте график MATLAB и отобразите его для 5
секунд.
Передайте HandleObject
и Struct
в MATLAB set
функция, использующая feval
. Эта функция изменяет цвет и ширину линии нанесенных на график данных.
Экспорт графика в jpeg
файл с именем myPlot
и закрывает соединение с двигателем.
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(); } }
MATLAB axes
функция создает оси для графика и возвращает указатель объекта ссылку. MATLAB get
функция, при вызове с одним выходом, возвращает MATLAB struct
со свойствами графического объекта.
Этот пример кода:
Создает графический объект MATLAB и возвращает указатель на объект как HandleObject
.
Создает структуру MATLAB, содержащую свойства и значения графического объекта, и возвращает ее как Struct
.
Получает значение FontName
свойство от Struct
.
Попытка изменить значение FontName
клавиша, которая выдает UnsupportedOperationException
потому что Struct
не модифицируется.
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(); } }