Арифметические операторы и массивы
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

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

Следующий пример иллюстрирует свойство скалярного расширения при вычислении произ-ведения скалярного опренда и матрицы

 

A = magic(3)

                                                      A =

                                                                   8  1  6

                                                                   3 5  7

                                                                   4 9  2

Введем

3 * A

что дает

                                                    ans =

                                                                  24 3 18

                                                                    9  15 21

                                                                  12 27  6

 

Операторы отношения

MATLAB обеспечивает следующие операторы отношения

 

Операторы Описание
< Меньше чем
<= Меньше чем или равно
> Больше чем
>= Больше чем или равно
== Равно
~= Не равно

 

Операторы отношения и массивы

Операторы отношения в MATLAB-е сравнивают соответствующие элементы двух массивов с одинаковыми размерностями. Эти операторы всегда действуют поэлементно. В приведен-ном ниже примере, результирующая матрица показывает, где элемент матрицы A равен со-ответствующему элементу матрицы B.

 

                                                   A = [2 7 6; 9 0 5; 3 0.5 6];

                                                   B = [8 7 0; 3 2 5; 4 –1 7];

                                                   A == B

                                                   ans =

                                                                0 1 0

                                                                0 0 1

                                                                0  0  0

 

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

Операторы отношения и пустые массивы

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

 

A == [ ]

 

приводят к ошибке, если только массив А не имеет размеры 0х0 или 1х1. Для проверки явля-ется ли данный массив пустым, следует использовать специальную функцию isempty( A).

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

MATLAB обеспечивает следующие логические операторы

 

Оператор Описание
& AND (логическое И)
| OR (логическое ИЛИ)
~ NOT (логическое НЕ)

 

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

 

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

q Выражения использующие оператор И (&), истинны, если истинны оба операнда. При численных элементах, выражение является истинным, если оба операнда ненулевые. Следующий пример показывает операцию логического И для двух векторов

 

                                       u = [1 0 2 3 0 5];

                                        v = [5 6 1 0 0 7];

                                      

                                        u & v

                                     ans =

0 0 1  0  0  1

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

                                              

                                             u | v

                                          ans =

1 1  1  1  0  1

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

                                        ~u

                                           ans =

                                                      0 1 0 0 1 0

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

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

 

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

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

 

Функция Описание Примеры
xor Выполняет операцию исключающего ИЛИ над своими операндами. При числовых элементах, функция возвращает 1 если один из операндов ненулевой, а второй - нулевой a = 1;   b = 1; xor(a,b) ans =        0
all Возвращает 1, если все элементы ее аргумента являются истинными или не равны нулю; в противном случае результат равен логическому нулю. Над матрицами функция all работает вдоль столбцов A = [0 1  2; 3 5  0] A =        0 1  2        3  5 0 all(A) ans =         0 1 0
any Возвращает единицу, если любой из аргументов является истинным или ненулевым; в против-ном случае вовращает 0. Как и all , any работает вдоль столбцов матриц. v = [5  0  8]; any(v) ans =           1

 

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

 

Дата: 2019-05-28, просмотров: 197.