1.7. Структуры в MatLabПри разработке программ важным является выбор эффективного способа представления данных. Во многих случаях недостаточно объявить простую переменную или массив, а нужна более гибкая форма представления данных. Таким элементом может быть структура, которая позволяет включать в себя разные типы данных и даже другие структуры. Структуры задаются следующим образом:
где field1 – название первого поля структуры; VALUES1 – переменная первого поля структуры, и т.д. Приведем пример, в котором использование структуры позволяет эффективно представить данные. Таким примером будет инвентарный перечень книг, в котором для каждой книги необходимо указывать ее наименование, автора и год издания. Причем количество книг может быть разным, но будем полгать, что не более 100. Для хранения информации об одной книге будем использовать структуру, которая задается в MatLab с помощью ключевого слова struct следующим образом:
В итоге задается структура с тремя полями: title, author и year. Каждое поле имеет свой тип данных и значение. Для того, чтобы записать в эту структуру конкретные значения используется оператор ‘.’ (точка) для доступа к тому или иному полю структуры:
и таким образом, переменная S хранит информацию о выбранной книге. Однако по условиям задачи необходимо осуществлять запись не по одной, а по 100 книгам. В этом случае целесообразно использовать вектор структур lib, который можно задать следующим образом:
Данный пример показывает удобство хранения информации по книгам. Графически массив структур можно представить в виде таблицы, в которой роль столбцов играют поля, а роль строк элементы массива структур (рис. 1.1). При работе со структурами полезными являются следующие функции: isstruct( S ) – возвращает истину, если аргумент структура которые позволяют программно определить всю необходимую информацию о той или иной структуре и корректно выполнять обработку ее полей.
Рис. 1.1. Графическое представление массива структур хранения информации по 100 книгам
|