Пакет MatLab. Элементы программирования. Функции пакета. Графические возможности пакета, страница 7

Транспонирование                        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,' системой']