Создание структур и доступ к их компонентам
Для задания структур на языке MATLAB можно использовать операторы присваивания, что иллюстрирует следующий пример:
>> man.name='Иван'; >> man.surname='Петров': >> man.date=1956; >> man.height=170.5; >> man.weight=70.34;Здесь построена базовая структура без индексного указателя. Теперь можно просмотреть полученную структуру, просто указав ее имя:
>> man man =name: 'Иван'surname: 'Петров'date: 1956height: 170.5000weight: 70.3400Нетрудно догадаться, что компоненты структуры можно вызывать по имени и менять их значения. При этом имя компонента состоит из имени структуры и имени поля, разделенных точкой. Это поясняют следующие примеры:
>> man.date ans =1956>> man.date=1964man =name: 'Иван'surname: 'Петров'date: 1964height: 170.5000weight: 70.3400Примечание
Как уже отмечалось, в MATLAB 6.0 существует проблема с записью символов кириллицы в командном режиме. Так, в командном режиме нельзя вводить в аргументы структур малую букву "с" русского алфавита – она ведет к переводу строки. Этого ограничения нет при задании структур в программах, хотя и в этом случае ошибки при вводе символов кириллицы не исключены.
Для создания массива структур вводится их индексация. Например, вектор структур можно создать, введя индекс в скобках после имени структуры. Так, для создания новой, второй структуры, можно поступить следующим образом:
>> man(2).name='Петр'; >> man(2).Surname='Сидоров'; >> man(2).date=1959; >> man(2) ans =name: 'Петр'surname: 'Сидоров'date: 1959height: [ ] weight: [ ] >> man(2).surname ans =Сидоров >> length(man) ans =.2Обратите внимание на то, что не все поля данной структуры заполнены. Поэтому значением двух последних полей структуры 2 оказываются пустые массивы. Число структур в массиве структур позволяет найти функция length (см. последний пример). Эта же функция может использоваться и для нахождения размера любого вектора или размерности многомерного непустого массива, так как length(Х)= MAX(size(X)), если X – непустой массив, и length(X)=0, если Х=[ ].
