
- •Рабочая среда matlab
- •Арифметические вычисления
- •Простейшие вычисления
- •Вектор-столбцы и вектор-строки
- •Обращение к элементам вектора
- •Применение функций обработки данных к векторам
- •Поэлементные операции с векторами
- •Двумерные массивы, матрицы Ввод матриц, простейшие операции
- •Обращение к элементам матриц
- •Сложение, вычитание, умножение, транспонирование и возведение в степень
- •Перемножение матриц и векторов
- •Решение систем линейных уравнений
- •Создание матриц специального вида
- •Поэлементные операции
- •Поэлементные операции с матрицами
- •Применение функций обработки данных к матрицам
- •Задания на векторы
- •Задания на матрицы
- •Работа в редакторе m-файлов
- •Файл-функции
- •Файл-функции с одним входным аргументом
- •Файл-функции с несколькими входными аргументами
- •Файл-функции с несколькими выходными аргументами
- •Задания для самостоятельной работы
- •Управляющие конструкции языка программирования
- •Операторы цикла
- •Цикл for
- •Цикл while
- •Операторы ветвления
- •Условный оператор if
- •Задания для самостоятельной работы
- •Литература
- •Основы работы в среде
- •230201 – «Информационные системы и технологии»
- •394000, Воронеж, пр. Революции, 19
Поэлементные операции
Поскольку векторы и матрицы хранятся в двумерных массивах, то применение математических функций к матрицам и поэлементными операциями производятся так же, как для векторов. Работа со встроенными функциями (такими как min, max, sum и т.д.) имеет свои особенности в применении к матрицам.
Поэлементные операции с матрицами
Введем две матрицы
.
Умножение каждого элемента одной матрицы на соответствующий элемент другой производится при помощи оператора .*
>> C=A.*B
C =
-2 10 -8
21 -12 -45
Для деления элементов первой матрицы на соответствующие элементы второй используется ./ , а для деления элементов второй матрицы на соответствующие элементы первой служит .\
>> R1=A./B
R1 =
-2.0000 2.5000 -0.1250
0.4286 -1.3333 -1.8000
>> R2=A.\B
R2 =
-0.5000 0.4000 -8.0000
2.3333 -0.7500 -0.5556
Поэлементное возведение в степень осуществляется при помощи .^
>> P=A.^2
P =
4 25 1
9 16 81
Показатель степени может быть матрицей того же размера, что и матрица, возводимая в степень. При этом элементы первой матрицы возводятся в степени, равные элементам второй матрицы:
>> PB=A.^B
PB =
1.0e+003 *
0.0005 0.0250 0.0010
2.1870 0.0000 0.0000
Применение функций обработки данных к матрицам
Функция sum вычисляет сумму элементов вектора. С другой стороны, векторы в MATLAB, так же как и матрицы, хранятся в двумерных массивах. Возникает вопрос: что же будет, если в качестве аргумента sum использовать не вектор, а матрицу. Оказывается, MATLAB вычислит вектор-строку, длина, которой равна числу столбцов матрицы, а каждый элемент является суммой соответствующего столбца матрицы, например:
>> M=[1 -2 -4; 3 -6 4; 2 -2 0];
>> s=sum(M)
s =
6 -10 0
Функция sum по умолчанию вычисляет сумму по столбцам, изменяя первый индекс массива при фиксированном втором. Для того чтобы производить суммирование по строкам, необходимо вызвать sum с двумя аргументами, указав место индекса, по которому следует суммировать
>> s2=sum(M,2)
s2 =
-5
1
0
Заметим, что sum(M) и sum(M,1) приводят к одинаковым результатам. Итак, функция sum суммирует по строкам, или по столбцам, выдавая результат в виде вектора или вектор-строки. Аналогично работает и функция prod:
>> p=prod(M)
p =
6 -24 0
>> p2=prod(M,2)
p2 =
8
-72
0
Функция sort упорядочивает элементы каждого из столбцов матрицы в порядке возрастания. Вызов sort со вторым аргументом, равным двум, приводит к упорядочению элементов строк:
>> MC=sort(M) >> MR=sort(M,2)
MC = MR =
1 -6 -4 -4 -2 1
2 -2 0 -6 3 4
3 -2 4 -2 0 2
Так же как и для векторов, функция sort позволяет получить матрицу индексов соответствия элементов исходной и упорядоченной матриц. Для этого необходимо вызвать sort с двумя выходными аргументами:
>> [MC, Ind]=sort(M)
MC =
1 -6 -4
2 -2 0
3 -2 4
Ind =
1 2 1
3 1 3
2 3 2
Функции max и min вычисляют вектор-строку, содержащую максимальные или минимальные элементы в соответствующих столбцах матрицы:
>> mx=max(M) >> mn=min(M)
mx = mn =
3 -2 4 1 -6 -4
Для того чтобы узнать не только значения максимальных и минимальных элементов, но и их номера в столбцах, следует вызвать max или min так:
>> [mx,k]=max(M) >> [mn,n]=min(M)
mx = mn =
3 -2 4 1 -6 -4
k = n =
2 1 2 1 2 1
Обратите внимание, что во втором столбце матрицы M два равных максимальных элемента – первый и третий. Всегда возвращается номер первого максимального элемента. Аналогично и с минимальным элементом.
Рассмотрим функцию rot90, поворачивающую массив на 90 градусов против часовой стрелки. Например:
>> P=[4 3 -1; 2 0 7]
P =
4 3 -1
2 0 7
>> q1=rot90(P)
q1 =
-1 7
3 0
4 2