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


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

Доступ к данным массивов ячеек



Вы можете извлекать данные из массивов ячеек или же запоминать данные в имеющемся или вновь созданном массиве ячеек двумя способами:

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

 

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

Вы можете использовать индексирование содержимого в правой части выражения для обра-щения ко всем данным в какой-либо отдельной ячейке. Для этого в левой части выражения следует задать переменную для записи содержимого ячейки. Заключите индексы ячеек в фигурные скобки. Это означает, что вы обращаетесь к содержимому ячейки. Рассмотрим следующий массив N размера 2х2:

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

N{1,2} = 'Name';

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

N{2,2} = 7;

Вы можете получить строку в N{1,2} записав

 

c = N{1,2}

При вводе данной строки MATLAB выдаст

 

c =

Name

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

A{1, :} = value и B = A{1, :} являются неправильными.

 

Для обращения к подмножествам содержимого одной ячейки нужно объединить индексиро-вание. Например, чтобы получить элемент (2,2) массива в ячейкеN{1,1}, следует записать:

d = N{1,1} (2,2)

что даст

 

d =

Обращение к подмножествам массива ячеек

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

 

Удаление ячеек

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

.

A(:, 2) = [ ]

 

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

Изменение формы (размерностей) массива ячеек

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

 

A = cell(3, 4);

Size(A)

ans =

3 4

B = reshape(A,6,2);

Size(B)

ans =

6 2

Замена списка переменных массивами ячеек

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

  • В списке входных аргументов.
  • В списке выходных переменных.
  • В операциях отображения на дисплей.
  • При конструировании массивов (квадоатные скобки и фигурные скобки).

Если вы используете оператор двоеточия для индексации набора ячеек в сочетании с фигур-ными скобками, то MATLAB обращается с каждой ячейкой как с отдельной переменной. Например, допустим вы имеете массив ячеек T, где каждая ячейка содержит отдельный век-тор. Выражение T{1:5} эквивалентно списку векторов в первых пяти ячейках массива T, то есть оно равносильно записи

 

[ T{1} , T{2} , T{3} , T{4} , T{5} ]

 

Рассмотрим массив ячеек C:

 

C(1) = {[1 2 3]};

C(2) = {[1 0 1]};

C(3) = {1:10};

C(4) = {[9 8 7]};

C(5) = {3};

 

Для свертки векторов в C(1) и C(2) с использованием функции conv, нужно записать

 

d = conv(C{1:2})

d =

1 2 4 2 3

 

Для вывода на дисплей векторов со второго по четвертый введем

 

C{2:4}

 

Это даст

 

ans =

1 0 1

ans =

1 2 3 4 5 6 7 8 9 10

ans =

9 8 7

 

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

 

B = [ C{1}; C{2}; C{4} ]

 

что приводит к

 

B =

1 2 3

1 0 1

9 8 7

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

 

[D{1:2}] = eig (B)

D =

[3x3 double] [3x3 double]

Напомним, что при задании двух выходных аргументов, выходом функции eig(B)является модальная матрица, составленная из нормированных собственных векторов матрицы Bи ди-агональная матрица собственных значений. Вы можете вывести в командное окно действи-тельные значения собственных векторов и значений вводя D{1}иD{2}.

 




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

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