И другие программы этой серии
Теперь можно просмотреть полученную структуру, просто указав ее имя:
>> man man =
name: \'Иван\'
surname: \'Петров\'
date: 1956
height: 170.5000
weight: 70.3400
Нетрудно догадаться, что компоненты структуры можно вызывать по имени и менять их значения. При этом имя компонента состоит из имени структуры и имени поля, разделенных точкой. Это поясняют следующие примеры:
>> man.date ans =
1956 >> man.date=1964 man =
name: \'Иван\'
surname: \'Петров\'
date: 1964
height: 170.5000
weight: 70.3400
Примечание
В MATLAB есть старая проблема с записью символов кириллицы в командном режиме. Так, в командном режиме нельзя вводить в аргументы записей малую букву «с» русского алфавита – она ведет к переводу строки. Подобного ограничения нет при задании структур в программах, хотя и в этом случае ошибки не исключены. В новых реализациях MATLAB R2006*/2007* этот недостаток устранен. Тем не менее применение символов кириллицы в идентификаторах переменных и функций недопустимо.
1
266
Типы данных – массивы специального вида
Функции полей структур
267
Для создания массива структур вводится их индексация. Например, вектор структур можно создать, введя индекс в скобках после имени структуры. Так, для создания новой, второй структуры можно поступить следующим образом:
>> man(2).name=\'Петр\';
>> man(2).surname=\'Сидоров\';
>> man(2).date=1959;
>> man(2)
ans =
name: \'Петр\'
surname: \'Сидоров\'
date: 1959
height: [ ]
weight: [ ] >> man(2).surname ans = Сидоров >> length(man) ans =
2
Обратите внимание на то, что не все поля данной структуры заполнены. Поэтому значением двух последних компонентов структуры 2 оказываются пустые массивы. Число структур позволяет найти функция length (см. последний пример).
5.6.3. Функция создания структур
Для создания структур используется следующая функция:
• struct(\'field1\',VALUES1,\'field2\',VALUES2,…) возвращает созданную данной функцией структуру, содержащую указанные в параметрах поля \'fieldn\' с их значениями \'VALUESn\'.
Начало в части 1