8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

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