Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_1семестр.doc
Скачиваний:
43
Добавлен:
17.11.2019
Размер:
3.76 Mб
Скачать

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

Все данные 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 используется оператор умножения.

Двумерные массивы (матрицы)

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

Пример ввода матрицы размером 23

A = [3, 1, -1; 2, 4, 3];

Доступ к элементам матриц осуществляется при помощи двух индексов - номеров строки и столбца, заключенных в круглые скобки. Например А(2,1) означает обращение к элементу матрицы расположенному во второй строке и первом столбце.

Элементы матриц могут входить в состав выражений, например

A = C(1, 1) * C(2, 2) + C(2, 3);

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

Поскольку векторы и матрицы хранятся в двумерных массивах, то приме­нение математических функций к матрицам и поэлементные операции про­изводятся так же, как для векторов.

Умножение каждого элемента одной матрицы на соответствующий элемент другой производится при помощи оператора .*, например

C = A.*B;