на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Система математических расчетов MATLAB
p align="center">Операторы отношения и массивы

Операторы отношения в 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.

Логические выражения использующие функцию 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. Обычные скобки ().

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

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

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

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

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

7. Меньше чем (<), меньше чем или равно (<=), больше чем (>), больше чем или равно (>=), равно (==), не равно (~=).

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

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

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

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

A = [3 9 5];

B = [2 1 5];

C = A ./ B.^2

C =

0.7500 9.0000 0.2000

C = (A. / B) .^2

C =

2.2500 81.0000 1.0000

Выражения могут также содержать переменные, заданные посредством индексов

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

b =

7

Команды управления данными (Flow Control)

В MATLAB-е имеются 8 базовых команд для управления потоками данных:

* if, совместно с else и elseif, осуществляет обработку группы выражений, основываясь на

некотором логическом условии.

* switch, совместно с case и otherwise, обрабатывает различные группы выражений, основы-

ваясь на значении некоторого логического условия.

* while осуществляет обработки группы выражений неопределенное число раз, основываясь

на некотором логическом условии.

* for осуществляет обработку группы выражений определенное (заданное) число раз.

* continue передает управление к следующей итерации в циклах for или while , пропуская

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.