Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Индексация вложенных массивов ячеек



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

 

 

  • Для доступа к массиву 5х5 ячейке (1,1) используйте A{1,1}.
  • Для доступа к массиву 3х3 в позиции (1,1) ячейки (1,2) используйте A{1,2}{1,1}.
  • Для доступа к ячейке 2х2 в ячейке (1,2) используйте A{1,2}.
  • Для доступа к пустой ячейке в позиции (2,2) ячейки (1,2) запишем A{1,2}{2,2}{1,2}.

Преобразования между массивами ячеек и числовыми массивами

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

 

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

F{1,2} = [–1 0; 0 1];

F{2,1} = [7 8; 4 1];

F{2,2} = [4i 3+2i; 1 – 8i 5];

 

Используем теперь три вложенных цикла для копирования содержимого массива F в число-вой массив NUM.

for k = 1:4

for i = 1:2

for j = 1:2

NUM(i,j,k) = F{k}(i,j);

End

End

End

Аналогично, вы должны использовать петли for для присваивания каждого значения число-вого массива одной ячейке массива ячеек:

 

G = cell(1,16);

for m = 1:16

G{m} = NUM(m);

End

 

Массивы ячеек, содержащие структуры

Для хранения групп структур с различной архитектурой полей можно использовать массивы ячеек

 

c_str = cell(1,2);

c_str{1}.label = '12/2/94 – 12/5/94';

c_str{1}.obs = [47 52 55 48; 17 22 35 11];

c_str{2}.xdata = [–0.03 0.41 1.98 2.12 17.11];

c_str{2}.ydata = [–3 5 18 0 9];

c_str{2}.zdata = [0.6 0.8 1 2.2 3.4];

 

Ячейка l массива c_str содержит структуру с двумя полями, где в одном поле хранится стро-ка символов, а во втором - вектор. Ячейка 2 содержит структуру с тремя полями векторов.

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

 

cell_array{index}.field

 

Например, чтобы получить содержимое поля label структуры в ячейке 1 нужно записать

 

c_str{1}.label

 

Многомерные массивы ячеек

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

Например, создадим простой трехмерный массив ячеек Сиз двух массивовАиВ:

 

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

A{1,2} = 'Name';

A{2,1} = 2 – 4i;

A{2,2} = 7;

B{1,1} = 'Name2';

B{1,2} = 3;

B{2,1} = 0:1:3;

B{2,2} = [4 5]';

C = cat(3,A,B);

Общая структура индексации массива ячеек Симеет вид

 

 

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.