Index exceeds matrix dimensions

4 14 15 1

9 7 6 12

5 11 10 8

16 2 3 13

Индексирование (Subscripts)

Произведение матриц

I

I

I

I

6 7 2

1 5 9

8 3 4

8 0 -4

2 0 -1

6 0 -3

Векторное произведение и транспонирование матриц

Вектор-строка и вектор-столбец могут быть перемножены в любом порядке (оператор умно-жения * расположен на верхнем регистре клавиши с цифрой 8). Результатом будет или ска-ляр (внутреннее произведение) или матрица (внешнее произведение). Для приведенных выше векторов vи uимеем :

x = v*u

x =

X = u*v

X =

Для действительных матриц, операция транспонирования меняет взаимное местоположение элементов aij aji, симметричных относительно главной диагонали. Для обозначения транс-понирования MATLAB использует одиночную кавычку (апостроф) (‘). Для нашей симметри-чной матрицы Паскаля A’ = A.Однако матрица Вне является симметричной и поэтому:

 

X = B'

X =

Транспонирование превращает вектор-строку в вектор-столбец и наоборот. Если xиy оба яв-ляются действительными векторами, то произведение x*yне определено, но оба произве-дения x'*yи y'*xдают один и тот же скаляр. Это соотношение используется так часто, что имеет три различных имени: скалярное произведение, внутреннее произведение и точечное произведение.

Для комплексного вектора или матрицы,z, величина z' обозначет комплексно-сопряженное транспонирование. В MATLAB-е предусмотрены также поэлементные операции над элеме-нтами массивов. Признаком поэлементных операций служит точка после обозначения пере-менной. Так, транспонирование элементов матрицы zкак массива чисел обозначается z.', по аналогии с другими операциями на массивами чисел. Например, если

z = [1+2i 3+4i]

то

z' =

 

тогда как z.' есть

 

z.' =

Для комплексных векторов, два скалярных произведения x'*yиy'*x комплексно сопряжены, а скалярное произведение x'*x комплексного вектора с самим собой есть действительное число.

Для произведения двух совместимых Аи В матриц в MATLAB–е достаточно записать в ко-мандной строке С = А*В. MATLAB самостоятельно проверит совместимость размерностей матриц и выдаст результат. Если матрицы несовместимы, выдается сообщение об ошибке:

 

Error using ==> *

Inner matrix dimensions must agree.

Для краткого рассмотрения некоторых основных понятий, связанных с индексированием дву-мерных массивов (матриц), введем «волшебную» матрицу 4-го порядка:

 

F = magic(4)

F =

Элемент в i-ой строке и j-ом столбце матрицы Fобозначается через F (i,j). Например, F (4,2)есть число в четвертой строке и втором столбце. Для нашего волшебного квадрата, F(4,2) есть 14. Таким образом, можно вычислить сумму элементов четвертого столбца матрицы F,напечатав

 

F (1,4) + F (2,4) + F (3,4) + F (4,4)

 

Это дает ответ

ans =

но, как мы увидим в дальнейшем, не является самым элегантным способом суммирования элементов одного столбца.

Имеется также возможность обращения к элементам матрицы при помощи одного индекса, F(k). Это обычный способ обращения к элементам векторов (строк или столбцов). Но в MATLAB-е такой способ индексирования можно применить и к двумерным (в общем случае – многомерным) матрицам, так как система MATLAB хранит все многомерные массивы чи-сел в виде одного длинного вектора-столбца, сформированного из столбцов исходной матри-цы. Так, для нашего волшебного квадрата, F (8)есть другой способ обращения к начени 14 хранящемуся в F (4,2).

Если вы попытаетесь использовать элемент, находящийся вне размеров матрицы, это приве-дет к сообщению об ошибке

 

t = F (4,5)

(Индекс превышает размерность матрицы)

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

X = A;

X(4,5) = 17

X =