|
|
|||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||
| Вход | |||||||||||||||||||||||||||||||||
|
Раздел "MATLAB\MATLAB"
В.Г.Потемкин "Введение в Matlab" (v 5.3) В оглавление книги \ К следующему разделу \ К предыдущему разделу \ Предметный указатель 3.5. Индексы и подындексы Индексы. Элемент массива А, расположенный на пересечении строки i и столбца j, обозначается как А(i, j). Пример А = magic(4)
Тогда А(4, 3) - это элемент, расположенный на пересечении строки 4 и столбца 3, равный 15. Можно также вычислить сумму элементов четвертого столбца A(1, 4) + A(2, 4) + A(3, 4) + A(4, 4) На элементы массива А можно ссылаться, используя единственный индекс, А(k). Это обычный способ ссылки на элементы векторов. Но точно так же можно ссылаться на элементы двумерного массива, и в этом случае этот массив рассматривается как один длинный вектор-столбец, сформированный из столбцов исходного массива. В рассматриваемом примере А(12) - это другой способ ссылки на значение 15, соответствующее элементу А(4, 3). Если будет сделана попытка обратиться к элементу вне матрицы, то программа выдаст ошибку: t = A(4, 5) Если же выполняется присвоение значения элементу с индексами, выходящими за пределы массива, то система MATLAB автоматически увеличивает размер матрицы. Пример: X = A;
Выделение подблоков массива. Если в индексных выражениях использовать двоеточие, то можно ссылаться на подблоки массива. Так индексное выражение A(1:k, j) ссылается на блок из k элементов столбца j. Пример: A(1:4,3)
Здесь выделен столбец 3 матрицы magic(4). Оператор sum(A(1:4, 3)) вычисляет сумму элементов столбца 3. Однако существует способ лучше. Поскольку двоеточие само по себе ссылается на все элементы строки или столбца, то последнюю сумму можно вычислить так sum(A(:,3)) Кроме того, начиная с версии 5.0, на последнюю строку или столбец массива можно ссылаться с помощью ключевого слова end. Таким образом, оператор sum(A(:, end)) вычисляет сумму элементов в последнего столбца матрицы A. Объдинение подблоков в массив. Операция объединения отдельных подблоков в массив называется конкатенацией. Даже при формировании исходной матрицу, когда объдиняются отдельные элементы, осуществляется операция конкатенации.Оператор конкатенации - это пара квадратных скобок [ ], внутри которых указываются отдельные элементы или блоки массива. Пример. B = [A A+32; A+48 A+16]
Эта матрица состоит из четырех блоков размера 4x4 B =
Эта матрица есть половина другого волшебного квадрата, элементы которого находятся в диапазоне целых чисел 1:64. Суммы по столбцам уже имеют правильное значение для волшебного квадрата размера 8х8: sum(B) Однако сумма строк sum (B') совсем не та. Попробуйте найти те перестановки элементов, которые приводят матрицу B к истинному волшебному квадрату порядка 8. Удаление строк и столбцов. Используя понятие пустого массива, можно легко удалять строки, столбцы и целые подблоки. Допустим, X = A
Чтобы удалить второй столбец массива X достаточно применить оператор X (:, 2) = [ ]
При попытке улалить отдельный элемент массива возникает ошибка, поскольку результат не является массивом: X (1, 2) = [] Однако использование единственного индекса позволяет удалить одиночный элемент или последовательность элементов, при этом остающиеся элементы преобразуются в вектор-строку. Пример: X = A;
X(2:1:12) = [ ]
X(2 : 2 : 10) = [ ] Индексация многомерных массивов. В системе MATLAB принято хранить каждый массив, независимо от его размерности, как вектор-столбец. Этот вектор образован объединением (конкатенацией) столбцов исходного массива. Пример. A = [2 6 9; 4 2 8; 3 0 1] в виде следующего вектора-столбца
При обращении к массиву А с указанием единственного индекса происходит непосредственное обращение к этому вектору-столбцу. Обращение A(3) ссылается на третье значение в столбце; А(7) - на седьмое и так далее. Если количество индексов массива больше 1, то MATLAB вычисляет индекс в столбце хранения, используя значения размерностей массива. Если двумерный массив А имеет размер [d1 d2], где d1 - число строк, а d2 - число столбцов, то для элемента с номером (i, j) его позиция в векторе хранения определяется как (j-1)*d1+i. Пример Для элемента A(3, 2) MATLAB вычисляет следующую позицию в векторе хранения (2-1)*3+3 = 6. Элементу с номером 6 соответствует значение 0. Пример Рассмотрим многомерный массив C размера 5х4х3х2. На рис. 3.2 показаны форматы вывода на экран и хранения.
В оглавление книги \ К следующему разделу \ К предыдущему разделу \ Предметный указатель
|
|
Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.)
|
||
| На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro | ||
| E-mail: | ||
| Информация на сайте была обновлена 11.05.2004 |
Copyright 2001-2004 SoftLine Co Наши баннеры |
|