MATLAB.Exponenta
–Û·Ë͇ Matlab&Toolboxes

MATLAB

В.Г.Потемкин "Введение в Matlab" (v 5.3)
Глава 7. Массивы ячеек

  В оглавление книги \ К следующему разделу \ К предыдущему разделу \ Предметный указатель

7.1. Создание массивов ячеек. Применение операторов присваивания

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

  • используя операторы присваивания;
  • используя функцию cell, которая позволяет предварительно разместить массив, а затем присвоить данные ячейкам

Применение операторов присваивания.

Можно построить массив ячеек, присваивая данные отдельным ячейкам; система MATLAB автоматически строит массив по мере ввода данных. Существует два способа присвоить данные отдельным ячейкам.

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

Пример.
Создать массив ячеек А размера 2х2:

                  A(1, 1) = {[1 4 3; 0 5 8; 7 2 9]};
                  A(1, 2) = {'Anne Smith'};
                  A(2, 1) = {3+7i}; A(2, 2) = {-pi:pi/10:pi}

                  A =
                     [3x3 double] 'Anne Smith'
                     [3.0000+ 7.0000i] [1x21 double]

Обозначение { } соответствует пустому массиву ячеек точно также, как [ ] соответствует пустому числовому массиву.

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

Пример.

                  A{1, 1} = [1 4 3; 0 5 8; 7 2 9];
                  A{1, 2} = 'Anne Smith';
                  A{2, 1} = 3+7i;
                  A{2, 2} = -pi:pi/10:pi

                  A =
                      [3x3 double] 'Anne Smith'
                      [3.0000 + 7.0000i] [1x21 double]

Здесь не делается попытки отдать предпочтение одной из форм (индексация ячейки или индексация содержимого), а лишь приводится их описание. Пользователь может сам выбрать, какая форма ему более подходит.

Замечание:

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

Система MATLAB отображает массив ячеек в сжатой форме

                   A =
                        [3x3 double] 'Anne Smith'
                        [3.0000+ 7.0000i] [1x21 double]

Для отображения содержимого ячеек следует использовать функцию celldisp:

                  celldisp(A)
                 A{1, 1} =

1 4 3
0 5 8
7 2 9

                 A{2, 1} = 3.0000+ 7.0000i
                 A{1,2} = Anne Smith
                 A{2, 2} =

-3.1416 -2.8274 -2.5133 -2.1991 -1.8850 -1.5708 -1.2566
-0.9425 -0.6283 -0.3142 0 0.3142 0.6283 0.9425
1.2566 1.5708 1.8850 2.1991 2.5133 2.8274 3.1416

Для отображения структуры массива ячеек в виде графического изображения предназначена функция cellplot:

            cellplot(A)

ris702.gif (3219 bytes)

Рис. 7.2. Массив ячеек размера 2х2

Если данные присваиваются ячейке, которая находится вне пределов текущего массива, MATLAB автоматически расширяет массив ячеек. При этом ячейки, которым не присвоено значений, заполняются пустыми массивами.

Пример.
Добавление ячейки {3, 3} к определенному ранее массиву ячеек А размера 2х2 превращает его в массив размера 3х3, оставляя 4 дополнительных ячейки пустыми:

           A(3, 3) = {5};
            cellplot(A)

ris703.gif (3289 bytes)

а)

cell 1,1
3 4 2
9 7 6
8 5 1
cell 1,2

'Anne Smith'

cell 1,3

[ ]

cell 2,1

3 + 7i

cell 2,2

[-3.14 ... 3.14]

cell 2,3

[ ]

cell 3,1

[ ]

cell 3,2

[ ]

cell 3,3

5

б)

Рис. 7.3. Массив ячеек размера 3х3:
                               а) - графический образ cellplot;
                               б) - изображение, принятое в этой книге.

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

Использование скобок. Фигурные скобки { } являются конструктором массива ячеек, а квадратные [ ] - конструктором числового массива. Фигурные скобки аналогичны квадратным скобкам, за исключением того, что они могут быть еще и вложенными.

Пример.
Оператор присваивания

               C = {[1 2], [3 4]; [5 6], [7 8]}

формирует следующий массив ячеек

cell 1,1

[ 1  2 ]

cell 1,2

[ 3  4 ]

cell 2,1

[ 5  6 ]

cell 2,2

[ 7  8 ]

Рис. 7.4. Массив ячеек размера 2х2.

Квадратные скобки используются для объединения нескольких ячеек, как это делается для числовых массивов.

Применение функции cell. Функция cell позволяет создать шаблон массива ячеек, заполняя его пустыми ячейками.

Пример.
Создать пустой массив ячеек размера 2х3

         B = cell(2, 3)
          B =

[ ] [ ] [ ]
[ ] [ ] [ ]

Используя оператор присваивания, заполним одну из ячеек массива

           B(1, 3) = {1:3};
            B =

[ ] [ ] [1x3 double]
[ ] [ ] [ ]

  В оглавление книги \ К следующему разделу \ К предыдущему разделу \ Предметный указатель

 


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

Система Orphus

Яндекс.Метрика