И другие программы этой серии
Значением может быть массив ячеек;
• struct(OBJ) конвертирует объект OBJ в эквивалентную структуру или массив структур. OBJ может быть объектом или массивом Java. Пример:
>> S=struct(\'student\',\'Иванов\',\'grup\',2,\'estimate\',\'good\') S =
student: \'Иванов\'
grup: 2
estimate: \'good\'
5.6.4. Проверка имен полей и структур
Выполнение операций с полями и элементами полей выполняется по тем же правилам, что и при работе с обычными массивами. Однако существует ряд функций, осуществляющих специфические для структур операции.
Приведенные ниже функции служат для тестирования имен полей и структур записей:
• isfields(S,\'field\') возвращает логическую 1, если \'field\' является именем поля структуры S;
• isstruct(S) возвращает логическую 1, если S – структура, и 0 в ином случае.
Их применение на примере структуры man показано ниже:
>> isfield(man,\'name\')
ans = 1
>> isfield(man,\'family\')
ans = 0
>> isstruct(man)
ans = 1
>> isstruct(many)
??? Undefined function or variable \'many\'.
>> isstruct(\'many\')
ans = 0
5.7. Функции полей структур
5.7.1. Функция возврата имен полей
Следующая функция позволяет вывести имена полей заданной структуры:
• fieldnames(S) возвращает имена полей структуры S в виде массива ячеек. Пример:
>> fieldnames(man) ans =
\'name\'
\'surname\'
\'date\'
\'height\'
\'weight\'
5.7.2. Функция возврата содержимого полей структуры
В конечном счете работа со структурами сводится к выводу и использованию содержимого полей. Для возврата содержимого поля структуры S служит функция getfield:
• getfield(S,\'field\') возвращает содержимое поля структуры S, что эквивалентно S.field;
• getfield(S,{i,j},\'field\',{k}) эквивалентно F=S(i,j).field(k). Пример:
>> getfield(man(2),\'name\') ans = Петр
268
Типы данных – массивы специального вида
Массивы ячеек
269
5.7.3.
Начало в части 1