Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
matlab_manual.rtf
Скачиваний:
21
Добавлен:
30.08.2019
Размер:
17.64 Mб
Скачать

Применение функций и операторов

Для применения функций или операторов к содержимому ячеек нужно воспользоваться со-ответствующей индексацией. Например, зададим массив ячеек А

A{1, 1} = [1 2; 3 4];

A{1, 2} = randn (3,3);

A{1, 3} = 1 : 5;

Тогда, для применения функции sum к содержимому первой ячейки массива запишем

B = sum (A{1,1})

Что приводит к следующему результату

B =

4 6

Для применения той же функции к нескольким ячейкам не вложенных массивов ячеек, нуж-но применить цикл:

for i = 1:length(A)

M{i} = sum(A{1,i});

end

Организация данных в массивах ячеек

Массивы ячеек являются полезными для создания базы данных, состоящих из массивов раз-личных значений и типов. Массивы ячеек являются предпочтительнее структур в приложе-ниях, где:

  • Вам нужен доступ ко многим полям данных при помощи одного обращения.

  • Вы хотите иметь доступ к подмножеству данных в виде списка значений.

  • У вас нету фиксированного набора имен полей.

  • Вам приходится часто удалять поля из структуры.

Как пример обращения к набору множества полей при помощи одного выражения допустим, что ваши данные состоят из:

  • Массива размера 3х3, состоящего из измерений, полученных экспериментально.

  • Строки из 15 символов, содержащей имя инженера.

  • Массива размера 3х4х5, содержащего записи измерений за последние 5 эксперимен-тов.

Для многих приложений, наилучшим способом создания базы данных являются структуры. Однако, если вы постоянно имеете дело только с первыми двумя полями данных, то массив ячеек может быть более удобным для целей индексации.

Приведенный ниже пример показывает как можно обратиться к первым двум элементам мас-сива ячеек TEST.

[newdata, name] = deal (TEST{1:2})

а следующий пример демонстрирует то же при организации данных в виде структуры с тем же именем TEST:

newdata = TEST.measure

name = TEST.name

Вложение массивов ячеек

Массив ячеек может содержать другой массив ячеек и даже масси массивов ячеек (Массивы, не содержащие другие массивы ячеек называются листовыми ячейками (leaf cells).) Для соз-дания вложенных массивов ячеек вы можете использовать вложенные фигурные скобки, фу-нкцию cell, или непосредственное применение операторов присваивания.

Создание вложенных массивов при помощи вложенных фигурных скобок

Для указанной в заголовке цели достаточно вложить в требуемую ячейке пару фигурных ско-бок. Например, введем следующие команды

clear A

A(1,1) = {magic(5)};

A(1,2) = { { [ 5 2 8; 7 3 0; 6 7 3] 'Test 1'; [2 – 4i 5 + 7i] {17 [ ] } } }

что даст

A =

[5x5 double] {2x2 cell}

Отметим, что правая часть второго оператора присваивания заключена в две пары фигурных скобок. Первая пара характеризует ячейку cell (1,2) массива ячеек A. Второй “набор” скобок представляет массив ячеек размера 2х2 внутри внешней ячейки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]