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

Поэлементное воздействие

Действия над векторами

Вычисления с многомерными массивами

2 3 4

Size(C)

2 3 1 4

Size(B)

Удаление единичных размерностей.

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

B = repmat (5, [2 3 1 4] ) ;

ans =

Функция squeezeудаляет единичные размерности из массива.

 

C = squeeze(B);

ans =

Функцияsqueeze не оказывает воздействия на двумерные массивы – векторы-строки оста-ются строками.

 

Многие вычислительные и математические функции MATLAB-а принимают в качестве аргументов многомерные массивы. Эти функции действуют на определенные размерности многомерных массивов, в частности, на отдельные элементы, векторы или матрицы.

Функции которые действуют над векторами, такие как sum, mean, и т.д., по умолчанию обы-чно действуют вдоль первой неединичной размерности многомерного массива. Многие из этих функций дают возможность задать размерность вдоль которой они действуют. Однако, есть и исключения. Например, функция cross, которая определяет векторное произведение двух векторов, действует вдоль первой неединичной размерности, имеющей размер 3.

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

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

Функции, действующие над плоскостями или матрицами, такие как функции линейной алге-бры или матричные функции в директории matfun , не принимают в качестве аргументов многомерные массивы. Иными словами, вы не можете использовать функции в директории matfun,или операторы *, ^, \,или /, с многомерными массивами. Попытка использования многомерных массивов или операндов в таких случаях приводит к сообщению об ошибке.

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

 

A = cat (3 , [1 2 3; 9 8 7; 4 6 5], [0 3 2; 8 8 4; 5 3 5], [6 4 7; 6 8 5; 5 4 3]);

 

Применение функции eig ко всему многомерному массиву дает сообщение об ошибке: