Учебно-методический комплекс дисциплины Редакция 1



бет61/62
Дата02.04.2023
өлшемі1,47 Mb.
#78428
түріРабочая учебная программа
1   ...   54   55   56   57   58   59   60   61   62
1.7. Структуры в MatLab
При разработке программ важным является выбор эффективного способа представления данных. Во многих случаях недостаточно объявить простую переменную или массив, а нужна более гибкая форма представления данных. Таким элементом может быть структура, которая позволяет включать в себя разные типы данных и даже другие структуры. Структуры задаются следующим образом:
S = struct('field1',VALUES1,'field2',VALUES2,...);
где field1 – название первого поля структуры; VALUES1 – переменная первого поля структуры, и т.д.
Приведем пример, в котором использование структуры позволяет эффективно представить данные. Таким примером будет инвентарный перечень книг, в котором для каждой книги необходимо указывать ее наименование, автора и год издания. Причем количество книг может быть разным, но будем полгать, что не более 100. Для хранения информации об одной книге будем использовать структуру, которая задается в MatLab с помощью ключевого слова struct следующим образом:
S = struct('title','','author','','year',0);
В итоге задается структура с тремя полями: title, author и year. Каждое поле имеет свой тип данных и значение.
Для того, чтобы записать в эту структуру конкретные значения используется оператор ‘.’ (точка) для доступа к тому или иному полю структуры:
S.title = 'Евгений Онегин';
S.author = 'Пушкин';
S.year = 2000;
и таким образом, переменная S хранит информацию о выбранной книге.
Однако по условиям задачи необходимо осуществлять запись не по одной, а по 100 книгам. В этом случае целесообразно использовать вектор структур lib, который можно задать следующим образом:
lib(100,1) = struct('title','','author','','year',0);
и записывать информацию о книгах так:
lib(1).title = 'Евгений Онегин';
lib(1).author = 'Пушкин';
lib(1).year = 2000;
Данный пример показывает удобство хранения информации по книгам. Графически массив структур можно представить в виде таблицы, в которой роль столбцов играют поля, а роль строк элементы массива структур (рис. 1.1).
При работе со структурами полезными являются следующие функции:
isstruct( S ) – возвращает истину, если аргумент структура
isfield( S, 'name') – возвращает истину, если имеется такое поле
fieldnames( S ) – возвращает массив строк с именами всех полей
которые позволяют программно определить всю необходимую информацию о той или иной структуре и корректно выполнять обработку ее полей.




название

автор

год издания

lib[1]

lib[1].title

lib[1].author

lib[1].year













lib[2]

lib[2].title

lib[2].author

lib[2].year













lib[3]

lib[3].title

lib[3].author

lib[3].year












lib[100]

lib[100].title

lib[100].author

lib[100].year

Рис. 1.1. Графическое представление массива структур хранения информации по 100 книгам


Достарыңызбен бөлісу:
1   ...   54   55   56   57   58   59   60   61   62




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет