Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lection_matlab_all / matlab_3

.pdf
Скачиваний:
18
Добавлен:
27.05.2015
Размер:
228.83 Кб
Скачать

Для операций умножения, деления и возведения в степень соглашения несколько иные. Возможны поэлементные операции, когда, скажем, элементы первого массива умножаются на элементы второго, т.е.:

c(i, j) = a (i, j) * b(i, j).

В этом случае бинарная операция «умножить массивы» записывается через оператор «.*»

c = a.*b.

Аналогично определены операции «./» и «.^». Для поэлементных операций, как и для операций сложения и вычитания, необходимо, чтобы массивы a и b имели одинаковые размеры по всем измерениям.

Возможны и операции «*», «/» и «^». Однако в отличие от поэлементных операций они производятся по правилам линейной алгебры над двумерными матрицами, а также строками и векторами.

Например, допустима операция а*b, если a имеет размеры (n x m), а b размеры (m х p). В частности, если а – строка, а b – вектор одинаковой длины, то в результате операции а*b будет получено их скалярное произведение.

Операция с = b*a (столбец на строку) в данном примере допустима. Она формирует внешнее произведение векторов –

матрицу с элементами:

c(i, j) = b(i) * a(j)

Полезные функции, упрощающие работу с массивами: mean(a) - вычисляет среднее арифметическое элементов массива а

std(a) - вычисляет среднеквадратичное отклонение элементов массива а

sum(a) - вычисляет сумму элементов массива а

diff(a) – вычисляет разность между элементами соседних строк массива а

prod(a) - вычисляет произведение элементов массива а min(a) - вычисляет минимум элементов массива а max(a) - вычисляет максимум элементов массива а sort(a) - сортирует элементы а по возрастанию.

Важно! Если массив-аргумент – двух- и более мерный, то эти операции по умолчанию производятся по столбцам (второму измерению) массива-аргумента. Например:

>>a = rand(3)

a =

0.913337361501670 0.538342435260057 0.442678269775446

0.152378018969223 0.996134716626885 0.106652770180584

0.825816977489547 0.078175528753184 0.961898080855054

>>mean(a)

ans =

0.630510785986813 0.537550893546709 0.503743040270361

Полученный в результате выполнения команды diff(А) массив будет иметь на одну строку меньше в сравнении с А (в том числе, если А – одномерный массив; даже в этом случае он будет содержать на один элемент меньше).

>> diff(a) ans =

-0.760959342532447 0.457792281366828 -0.336025499594862 0.673438958520324 -0.917959187873702 0.855245310674469

Функции max, min, sum, prod, mean, std, sqrt в случае применения к одномерным массивам работают одинаково как для векторов, так и для строк:

>>x = [1 2 3 4 5]

>>sum(x)

ans = 15

>> sum(x') ans =

15

Для определения размеров массивов можно использовать функции size (для массивов произвольной размерности) и length (только для строк и столбцов):

>>x = rand(1, 10); length(x) ans =

10

>>y = rand(3, 4, 5); size(y) ans =

3 4 5

MatLab предоставляет в распоряжение пользователя большое количество стандартных элементарных математических функций, таких как sqrt, abs, exp, sin, tanh и др. Имеются и более специфические функции, например, функции Бесселя, гамма-функция и проч. Замечательно то, что

функции математической библиотеки MatLab без ограничений применимы к массивам и комплексным данным. Необходимо только помнить, что выполняются они поэлементно, т.е. полученная в результате расчёта матрица с=sin(a) будет содержать элементы с(i, j) = sin(a(i, j)).

Это свойство математических операций и функций в MatLab позволяет легко вычислять значения выражений почти неограниченной сложности. Простейший пример:

>> sqrt( sin(x).*cos(x.^2) ) + exp(i*x)

В данном случае i — выступает как мнимая единица, а квадратный корень вычисляется даже, когда аргумент < 0 — т.е. результат будет комплексным числом!

Для работы с комплексными числами в MatLab определены следующие функции:

abs(z) — модуль комплексного числа (совпадает с abs для обычных действительных чисел)

angle(z) — аргумент комплексного числа real(z) — действительная часть числа imag(z) — мнимая часть числа

conj(z) — возвращает комплексно-сопряжённое число

Соседние файлы в папке lection_matlab_all