Структуры в MATLAB
В 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 |
Выход:
Однако следует отметить, что каждая структура в массиве должна иметь одинаковые имена полей, поскольку массив представляет собой набор данных одного и того же типа; в этом случае тот же тип структуры. Теперь можно получить доступ к структурам в массиве как к элементу массива.