Структуры в MATLAB

Опубликовано: 7 Января, 2023

В MATLAB структуры — это способ группировать связанные данные, когда разные данные имеют разные типы данных. Эти различные типы данных хранятся в виде полей внутри контейнера данных, созданного командой struct . Структура может иметь любое количество полей от 0 до неопределенного. Структуры могут быть одномерными или многомерными.

Синтаксис:

struct_name = struct(‘Field_name_1’, 

Value_1, ‘Field_name_2’, Value_2, …)

Эта команда создаст структуру с именем struct_name , и она будет иметь столько значений, сколько указано в аргументах команды struct(). Каждое поле имеет собственное ссылочное имя для вызова.

Методы создания и доступа к структурам:

1. Создание структуры с полями:

Чтобы создать структуру с заданными полями и значениями, можно использовать следующий пример:

Пример 1:

Matlab




% MATLAB code for structure %
 
employees = struct("emp_ids",
[117, 119, 123], "emp_names",
char("Mark", "John", "Sam"),
"emp_age", [27,29,33])

Выход:

Чтобы скрыть это отображение после каждого выполнения, добавьте '; ' в конце строки, чтобы скрыть его.

2. Чтобы отобразить поле:

Просто вызовите имя поля с помощью синтаксиса <struct_name.field_name> . Это отобразит значения поля в командном окне. Вот пример того же:

Пример 2:

Matlab




% MATLAB code for display a structure %
 employees = struct("emp_ids", [117, 119, 123],
"emp_names", char("Mark", "John", "Sam"),
"emp_age", [27,29,33]);
 employees.emp_ids

Выход:

3. Добавление нового элемента в поле:

Чтобы добавить новые элементы в поле, просто используйте команду как

<stuct_name.filename(index)=value>

Пример 3:

Matlab




% MATLAB code for add data in Structure %
employees = struct("emp_ids", [117, 119, 123],
"emp_names", char("Mark", "John", "Sam"),
"emp_age", [27,29,33]);
 
employees.emp_ids
employees.emp_ids(4)=129;
employees.emp_ids

Выход:

Приведенный выше скрипт отображает emp_id до и после добавления 129 значений в список.

4. Создание пустой структуры:

Пустая структура, то есть структура без полей, может быть создана как

Matlab




%  MATLAB code for Creating %
% an Empty Structure %
employees = struct()

Выход:

5. Создание массива структур:

MATLAB позволяет пользователям создавать массивы структур. Синтаксис прост.

arr_struct = [struct(), struct(), …]

Это создаст одномерный массив размера n, где n — количество структур.

Пример 5:

Matlab




% MATLAB code for Structure%
arr_struct = [struct("name",
char("John"), "age", 29, "id", 119 );
struct("name", char("Mark"),
"age", 27, "id", 117);];
 
arr_struct

Выход:

Однако следует отметить, что каждая структура в массиве должна иметь одинаковые имена полей, поскольку массив представляет собой набор данных одного и того же типа; в этом случае тот же тип структуры. Теперь можно получить доступ к структурам в массиве как к элементу массива.