Понятие массива. Операции с матрицами и массивами
Все данные MATLAB представляет в виде массивов. Массив — упорядоченная, пронумерованная совокупность однородных данных. У массива должно быть имя.
Массивы различаются по числу размерностей или измерений:
- одномерные,
- двумерные,
- многомерные.
Размером массива называют число элементов вдоль каждого из измерений. Доступ к элементам осуществляется при помощи индекса. В MATLAB нумерация элементов массивов начинается с единицы. Это значит, что индексы должны быть больше или равны единице.
Вектор, вектор-строка, матрица или тензор являются математическими объектами, а одномерные, двумерные или многомерные массивы — способы хранения этих объектов в компьютере.
Вектор может быть записан в столбик (вектор-столбец) и в строку (вектор-строка).
Ввод, сложение и вычитание векторов
Простой пример работы с векторами – вычисление суммы векторов.
Пусть для хранения векторов используются массивы а и b.
Элементы массива вводятся в квадратных скобках с разделением точкой с запятой (вектор-столбец) или запятой (вектор-строка):
а = [1.3; 5.4; 6.9];
b = [7.1; 3.5; 8.21];
Для нахождения суммы векторов используется знак +.
Результат суммы векторов записывается в массив с:
с = а + b;
Для нахождения разности векторов следует применять знак минус.
Если размеры векторов, к которым применяется сложение или вычитание, не совпадают, то выдается сообщение об ошибке.
Особенность MATLAB представлять все данные в виде массивов является очень удобной. Пусть, например, требуется вычислить значение функции sin сразу для всех элементов вектора с (который хранится в массиве с) и записать результат в вектор d. Можно использовать оператор присваивания:
d = sin(c);
Встроенные в MATLAB элементарные функции приспосабливаются к виду аргументов. Если аргумент является массивом, то результат функции будет массивом того же размера, но с элементами, равными значению функции от соответствующих элементов исходного массива.
Обращение к элементам вектора
Доступ к элементам вектора осуществляется при помощи индекса, заключаемого в круглые скобки после имени массива, в котором хранится вектор. Если среди переменных рабочей среды есть массив v, определенный вектором
v = [1.3, 3.6, 7.4, 8.2, 0.9];
то для обращения, например, к четвертому элементу используется индексация:
h = v(4);
В результате переменной h присваивается значение 8.2.
Указание элемента массива в левой части оператора присваивания приводит к изменению в массиве. Например, выполнение выражения
v(2) = 555;
приводит к тому, что второму элементу массива v присваивается значение 555.
Из элементов массива можно формировать новые массивы, например:
u = [v(3); v(2); v(1)];
MATLAB предоставляет удобный способ обращения к блокам последовательно расположенных элементов вектора. Для этого служит индексация при помощи знака двоеточие. Пусть в заданном векторе w из семи элементов требуется заменить нулями элементы со второго по шестой. Индексация при помощи двоеточия позволяет просто и наглядно решить поставленную задачу:
w(2:6) = 0;
Умножение векторов
Вектор можно умножить на другой вектор различными способами:
- поэлементно,
- скалярно (это произведение еще называют внутренним),
- векторно,
- образовать так называемое внешнее произведение.
Результатом скалярного произведения является число, векторного – вектор, внешнего – матрица, поэлементного – вектор.
Поэлементные операции с векторами
Операция .* приводит к поэлементному умножению векторов одинаковой длины. В результате получается вектор с элементами, равными произведению соответствующих элементов исходных векторов:
u = v1 .* v2;
При помощи .^ осуществляется поэлементное возведение в степень:
р = v1 .^ 2;
Показателем степени может быть вектор той же длины, что и возводимый в степень. При этом каждый элемент первого вектора возводится в степень, равную соответствующему элементу второго вектора.
Деление соответствующих элементов векторов одинаковой длины выполняется с использованием . /
d = v1./v2;
Обратное поэлементное деление (деление элементов второго вектора на соответствующие элементы первого) осуществляется при помощи .\
К поэлементным относятся и операции с вектором и числом. Сложение вектора и числа не приводит к сообщению об ошибке. MATLAB прибавляет число к каждому элементу вектора. То же самое справедливо и для вычитания.
Скалярное произведение
Скалярное произведение векторов а и b длины N, состоящих из действительных чисел, определяется формулой
.
Следовательно, для вычисления скалярного произведения необходимо просуммировать компоненты вектора, полученного в результате поэлементного умножения а на b.
Векторное произведение
Векторное произведение a´b определено только для векторов из трехмерного пространства, т. е. состоящих из трех элементов. Результатом также является вектор из трехмерного пространства. Для вычисления векторного произведения в MATLAB служит функция cross.
Внешнее произведение
Внешним произведением векторов называется матрица размерностью N´M, элементы которой вычисляются по формуле
Вектор-столбец a в MATLAB представляется в виде двумерного массива размера N на один. Вектор-столбец b при транспонировании переходит в вектор-строку размера один на М. Вектор-столбец и вектор-строка есть матрицы, у которых один из размеров равен единице. Фактически , где умножение происходит по правилу матричного произведения. Для вычисления матричного произведения в MATLAB используется оператор умножения.