Система математических расчетов MATLAB

Методическое пособие - Компьютеры, программирование

Другие методички по предмету Компьютеры, программирование

v = [5 6 1 0 0 7];

u & v

ans =

0 0 1 0 0 1

 

  1. Выражения, использующие оператор ИЛИ ( | ), являются истинными если один из операндов является истинным. Выражения с ИЛИ являются ложными только если ло-жными являются оба операнда. При численных элементах, выражение является лож-ным, елси только оба операнда равны нулю. Для приведенных выше векторов u и v имеем

u | v

ans =

  1. 1 1 1 0 1

 

  1. Выражения, использующие оператор ~ выполняют логическое отрицание. Это дает ложный результат, если операнд является истинным и истинный, если операнд явля-ется ложным. При численных элементах, любой ненулевой операнд становится нулев-ым (логическим нулем), а любой нулевой элемент становится равным (логической) единице. Рассмотри операцию логического отрицания вектора u

 

~u

ans =

0 1 0 0 1 0

 

Использованием логических операторов с массивами

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

 

Логические функции

В дополнение к логическим операторам, MATLAB имеет ряд логических функций.

 

ФункцияОписаниеПримерыxorВыполняет операцию исключающего ИЛИ над своими операндами. При числовых элементах, функция возвращает 1 если один из операндов ненулевой, а второй - нулевойa = 1; b = 1;

xor(a,b)

ans =

0allВозвращает 1, если все элементы ее аргумента являются истинными или не равны нулю; в противном случае результат равен логическому нулю. Над матрицами функция all работает вдоль столбцов A = [0 1 2; 3 5 0]

A =

0 1 2

3 5 0

all(A)

ans =

0 1 0anyВозвращает единицу, если любой из аргументов является истинным или ненулевым; в против-ном случае вовращает 0. Как и all , any работает вдоль столбцов матриц.v = [5 0 8];

any(v)

ans =

1

Ряд других функций MATLAB-а выполняет логические операции. Например, функция isnan возвращает 1 для NaN; функция isinf возвращает 1 для Inf. Более подробный список можно найти в директории ops.

 

Логические выражения использующие функцию find

Функция find определяет индексы числового массива, удовлетворяющие заданному логичес-кому условию. Эта функция удобна для создания логических масок (шаблонов) и матриц ин-дексов. В наиболее общей форме, функция find возвращает единственный вектор индексов. Этот вектор может быть использован для индексации массивов любого размера или формы. Например, в приведенном ниже примере функция find позволяет легко заменить все элемен-ты матрицы А больше 8 на число 100:

 

A = magic(4)

 

A =

16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1

 

i = find (A > 8);

A(i) = 100

 

A =

100 2 3 100

5 100 100 8

100 7 6 100

4 100 100 1

 

Вы можете также использовать функцию find для получения обеих индексов строк и стол-бцов прямоугольных матриц, удовлетворяющих заданному логическому условию (более под-робно эта функция описана в справочниках).

 

 

Приоритеты операторов

Вы можете строить выражения, использующие любую комбинацию арифметических и логи-ческих операторов, а также операторов отношения. Уровни приоритетов этих операторов определяют порядок, в котором MATLAB обрабатывает выражение. В пределах каждого уровня приоритета, операторы имеют одинаковый приоритет и оцениваются (обрабатыва-ются) слева направо. Последовательность приоритетов для операторов MATLAB-а приве-дены ниже, упорядоченные в порядке убывания приоритетов, то есть от высшего приоритета к низшему.

 

  1. Обычные скобки ().

 

  1. Транспонирование (.), степень (.^), комплексно-сопряженное транспонирование(), степень матрицы(^).

 

  1. Унарный плюс (+), унарный минус (-), логическое отрицание (~).

 

  1. Умножение (.*), правое деление (./), левое деление(.\), матричное умножение (*), матричное правое деление (/), матричное левое деление (\).

 

  1. Сложение (+), вычитание (-).

 

  1. Оператор двоеточия (:).

 

  1. Меньше чем (=), равно (==), не равно (~=).

 

  1. Логическое И (&).

 

  1. Логическое ИЛИ (|).

 

Изменение приоритетов операторов

Имеющаяся последовательность приоритетов может быть изменена путем использования обычных скобок, как это показано в следующем примере.

 

A = [3 9 5];

B = [2 1 5];

 

C = A ./ B.^2