Основные матричные операции и функции.

Вектор в MATLAB рассматривается как вырожденная в одну строку или в один столбец матрица.

Обычная переменная - это матрица размером 1х1.

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

expm(M) – матричный экспотенциал.

logm (M) – матричный логарифм.

sgrtm (M) – матричный квадратный корень.

Все эти функции возвращают в матрицу преобразующиеся элементы.

Арифметические операторы.При работе с массивом чисел установлены следующие уровни приоритета среди арифметических операций:

Уровень 1: поэлементное транспонирование (.”), поэлементное возведение в степень (.^), сопряженное транспонирование матрицы (‘), возведение матрицы в степень (^);

Уровень 2: унарное сложение (+), унарное вычитание(-);

Уровень 3: умножение массивов (.*),правое деление (./), левое деление массивов (.\),умножение матриц (*),решение систем линейных уравнений – операция (/),операция(\);

Уровень 4: сложение (+), вычитание (-);

Уровень 5:оператор формирование массивов (:).

Внутри каждого уровня операторы имеют равный приоритет и вычисляются в порядке следование слева направо. Заданный по умолчанию порядок следование может быть изменен с помощью круглых скобок.

Пример:

Пусть заданы два вектора

А=[3 9 5];

B=[2 1 5];

Результаты выполнения операторов

С=А./В.^2

С= 0.7500 9.0000 0.2000

С=(А./В).^2

C= 2.2500 81.0000 1.0000

Совершенно различны.

Арифметические операторы допускают использование индексных выражений:

B= sqrt(A(2))+2*B(1)

B= 7

Арифметические операторы системы MATLAB работают, как правило, с массивами одинаковых размеров. Для векторов и прямоугольных массивов оба операнда должны быть одинакового размера, за исключением единственного случая, когда из них – скаляр. Если один из операндов скалярный, а другой нет, в системе MATLAB принято, что скаляр расширяется до размеров второго операнда и заданная операция применяется к каждому элементу. Такая операция называется расширением скаляра.

Операторы отношения.В системе MATLAB определено 6 следующих операторов отношения:

< меньше

<= меньше или равно;

>больше;

>= больше или равно

= = равно тождественно

~ = не равно

Оператор отношения выполняет поэлементное сравнение двух массивов равных размерностей. Для векторов и прямоугольных массивов оба операнда должны быть одинакового размера, за исключением случая, когда один из них скаляр. В этом случае MATLAB сравнивает скаляр с каждым элементом другого операнда. Позиции, где это соотношение истинно, получают значение 1, где ложно –0.

Оператор отношения, как правило, применяются для изменения последовательности выполнение операторов программы. Поэтому они чаще всего используются в теле операторов if, for, while, switch.

Оператор отношение всегда выполняются поэлементно.

Пример:

Выполним матрица указывает позиции, где элемент А меньше соответствующего элемента В.

При вычислении арифметических выражений операторы отношения имеют более низкий приоритет, чем арифметические, но более высокий , чем логические операторы.

Операторы отношение могут применяться к многомерным массивам, для которых одна из размерностей равно нулю, при условии, что оба массива одинакового размера или один из них скаляр. Однако выражения типа А ==

[ ] применимы только к массивам размера 0х0 или 1х1, а в других случаях вызывают ошибку.

Поэтому наиболее универсальный способ проверить, является ли массив пустым, - это применить функцию isemhty (А).

Логические операторы.

В состав логических операторов системы MATLAB входят следующие операторы:

Основные матричные операции и функции. - student2.ru & И;

Основные матричные операции и функции. - student2.ru | ИЛИ;

~ НЕ;

В дополнение к этим оператором каталог bitfun содержит ряд функций, которые выполняют поразрядные логические операции.

Логические операторы реализуют поэлементное сравнение массивов одинаковых размерностей. Для векторов и прямоугольных массивов оба операнда должны быть одинакового размера, за исключением случая с каждым из них скаляр. В последнем случае MATLAB сравнивает скаляр с каждым элементом другого операнда. Позиции, где это соотношение истинно, получают значение 1, где ложно –0.

Каждому логическому оператору соответствует некоторый набор условий, которые определяют результат логического выражения:

. Логическое выражение с оператором AND(&) является истинным, если оба операнда истинны. Если элементами логического выражения являются числа, то выражение истинно, если оба операнда отличны от нуля.

Пример:

Пусть заданы два числовых вектора:

U=[1 0 2 3 0 5];

V=[5 6 1 0 0 7];

Логическое выражение с оператором AND (&):

U & V

Ans =

1 0 1 0 0 1

Логическое выражение с оператором OR(|) является истинным, если один из операндов или оба операнда логически истинны. Выражение ложно, только если оба операнда логически ложны.

Если элементами логического выражение являются числа, то выражение ложно, если оба операнда равны нулю.

Пример:

Используем вектора u и v, определенные выше, и выполним логическое выражение с оператором OR(|):

U|V

Ans=

1 1 1 1 0 1

Логическое выражение с оператором NOT(~) строит отрицание. Результат логически ложен, если операнд истинен, и истинен, если операнд ложен. Если элементами логического выражения являются числа, то любой операнд, отличен от нуля, становится нулем, и любой нулевой операнд становится единицей.

Пример:

Используем вектор u, заданный выше, и построим логическое выражение оператором NOT (~):

~u

ans=

0 1 0 0 1 0

Наши рекомендации