Раздел: Документация
0 ... 334 335 336 337 338 339 340 ... 365 struct = cell2struct (с, fields, dim) —содержимое ячеек массива с (вдоль размерности dim) записывается в поля структур массива struct. Названия полей определяются элементами массива fields, который может быть либо массивом символов, либо массивом ячеек из строк. Пример использования celi2struct: » С = {March 12 40-30; April 26 17-45; May 10 12-00}; » fields = {Month Day Time}; » struct = cell2struct(C, fields, 2) struct = 3x1 struct array with fields: Month Day Time » struct(1) ans = Month: March Day: 12 Time: 10-30 Неправильное указание размерности, вдоль которой происходит преобразование, приводит к несоответствующему преобразованию массива ячеек в массив структур (в случае совпадения числа элементов в fields с длиной с вдоль данной размерности): >> struct = cell2struct(С, fields, 1); » struct(1) ans = Month: March Day: April Time: May В случае несовпадения числа полей в fields и размера с вдоль dim выводится сообщение об ошибке: » fields = {Month Day}; » Struct = cell2struct(С, fields, 2); ??? Error using --> cell2struct Number of field names must match number of fields in new structure. □ ceiidisp — вывод содержимого массива ячеек в командное окно. • ceiidisp (с) — последовательный вывод содержимого каждой ячейки массива с: » С = {May 10 ones (2)},- » ceiidisp(С) С{1} = May С{2} = •ceiidisp (С, name) — при выводе имя массива заменяется на строку name. □ceiipiot— отображение содержимого массива ячеек в графическом окне (см. разд. "Массивы ячеек " главы 8). Информация о соответствии цвета типу содержимого ячейки выводится при указании второго дополнительного входного аргумента: cellplot(C, legend)- □num2ceii — преобразование числового массива в массив ячеек. •с = num2ceii (а) — элементы числового массива а помещаются в отдельные ячейки массива с, например: » а = [1 2 3 4; 5 6 7 8] ; » С = num2cell(a) С = [1][2] [3] [4] [5][6] [7] [8] Размеры образующегося массива ячеек с совпадают с размерами а. •с = num2ceii(a, dim) — числа массива а вдоль размерности dim помещаются в отдельные ячейки: » С = num2cell(а, 2); » ceiidisp(С) С{1} = 10 С{3) = 1 1 1 1 1 2 3 4 С{2) = 5 6 7 В Функции для работы со структурами Работа со структурами и массивами структур описана в разд. "Простые структуры" и "Массивы структур и массивы ячеек" главы 8. □deal — копирование одних переменных в другие, или запись содержимого одной переменной в несколько. Данная функция оказывается полезной для организации доступа к полям массивов структур. Ниже приведены варианты вызова deal с примерами. •[s.field] = deal(x) — присвоение значения х полям field структур массива s, например: [s.name] *» deal {Bill1) - Если массив структур s не существует, то следует использовать обращение: [S[l:n) .name] = deal (Bill), где n— число структур в создаваемом массиве s. •[С{:} ] = deal (s. field) — копирование значений полей field структур массива s в массив ячеек с. Если массив ячеек с не существует, то следует использовать обращение: [C(l:n) .name] = deal (S.field), где n — число ячеек в создаваемом массиве с. •[а, ь, с, ...] = deal(s.field)— копирование значений полей field структур массива S в отдельные переменные а, Ь, с, ... □fieldnames — получение названий полей структуры. с = fieldnames (S) — массив ячеек из строк с содержит имена полей структур массива s (работа с массивами ячеек описана в разд. "Массивы ячеек"главы 8). Например: » S(l).name = Bill; » S(l).age = 30; » S(2).name = Smith; » S(2).age = 32; >> С = fieldnames(S) С = name age □getf ield — получение содержимого определенных полей структуры. f = getf ield (s, field) — возвращает содержимое полей с именем field структуры s. Входной аргумент s должен быть структурой, а не массивом, т. е. size (S) = [l 1]. Например, для структуры s, определенной выше, следует вызывать getf ield в цикле for: S(l).name = Bill; S(l).age = 30; 0 ... 334 335 336 337 338 339 340 ... 365
|