Транспонирование b = a'.
Сложение и вычитание b = a + c, d = a - c.
Эти операции определены также для случаев, когда один из операндов скаляр. В этом случае скалярная величина прибавляется (вычитается) к каждому элементу матрицы. Например, x=[1 2 3]
y = x - 1.
Результат y = [0 1 2].
Умножение b = a * c.
Деление. В пакете MatLab есть два знака обозначающие деление матриц: \ и /. Если квадратная матрица A не вырождена, то A\B и A/B формально являются результатом левого и правого умножения B на обратную к A матрицу, т.е. inv(A)*B и B*inv(A). Но на самом деле результат получается без вычисления обратной матрицы. Обычно x=A\B - решение уравнения A*x=B, а x=A/B уравнения x*A=B. Если A не квадратна, то она разлагается на множители с помощью ортогонализации Хаусхолдера с поворотом столбцов.
Возведение в степень. a = b^p.
Операция определена если b - квадратная матрица, а p - скаляр. Если p - целое число, большее 1, то степень вычисляется повторным умножением. Для остальных значений p расчет включает собственные значения и собственные векторы. Если [v,d]=eig(A), то A^p = v*d.^p/v.
Выражения типа exp(A) или sqrt(A) рассматриваются как операции над отдельными элементами массива. Трансцендентная математическая функция будет интерпретироваться как матричная. К имени функции присоединяется "m". Таких функции три:
expm - матричная экспонента;
sqrtm - матричный квадратный корень;
logm - матричный логарифм.
Вычисление матричной нормы: norm
norm(A,1) - наибольшая столбцовая сумма
max(sum(abs(real(A))+abs(imag(A))))
norm(A) - наибольшее собственное значение A
max(eig(A))
norm(A,inf) - наибольшая строчная сумма
max(sum(abs(real(A'))+abs(imag(A'))))
norm(A,'fro') - F норма
sqrt(sum(diag(A'*A))).
§4. Операции над массивами.
В отличии от обычных матричных операций, поэлементные операции над массивами обозначаются с точкой впереди:
.*, ./, .\, .^.
Например для x=[1 2 3] и y=[4 5 6]
z = x.*y = [4 10 18],
z = x.\y = [4 2.5 2],
z = x.^y = [1 32 729].
Показатель степени может быть скаляром
z = x.^2 = [1 4 9], как и основание
z = 2 .^[x y] = [2 4 8 16 32 64].
После числа обязательно должен быть пробел (иначе точка будет считаться десятичной).
Существуют шесть операций, которые можно использовать при сравнении матриц одного размера:
<, <=, >, >=, ==, ~= (не равно).
Сравнение осуществляется между парами соответствующих элементов, в результате чего появляется матрица, составленная из нулей (false) и единиц (true). Например, 2+2~=4 это просто 0. Для работы с такими матрицами используются , например, функции find, isnan, finite, any, all.
Элементарные математические функции применяются к массивам на поэлементной основе:
abs - абсолютное значение или модуль комплексного числа,
sqrt - квадратный корень,
real - действительная часть комплексного числа,
imag - мнимая часть комплексного числа,
conj - комплексно сопряженное,
round - округление до ближайшего целого,
fix - округление в направлении нуля,
floor - округление в направлении - бесконечности,
ceil - округление в направлении + бесконечности,
sign - функция знака,
rem - остаток,
bessel - функция Бесселя,
gamma - гамма-функция,
rat - действительная аппроксимация,
sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh, exp, log, log10.
§5. Использование строковых переменных.
Строковые переменные вводятся в одинарных кавычках:
s='Управление'.
В результате s = Управление.
Текст запоминается в векторе s по одному символу на элемент. Функция size(s) определяет, что s содержит 10 элементов. Символы записываются в память как ASCII значения, которые можно посмотреть, используя функцию abs(s)
Для работы со строками используются функции setstr, disp, sprintf (как в языке C), num2str, int2str. При V=[65 66 67] setstr(V)=ABC.
Текстовые переменные можно соединять в одну строку, используя скобки. Например после применения оператора
s=[s,' системой']
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.