Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
matlab_5.3(учебник).DOC
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
2.18 Mб
Скачать

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

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

  • & - логическое И (And);

  • | - логическое ИЛИ (Or);

  • ~ - логическое НЕТ (Not).

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

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

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

U =[1 0 2 3 0 5]; %вектор-строка размерности 5

V = [5 6 1 0 0 7];

U&V %логическое выражение с оператором And (&) :

ans =

1

0

1

0

0

1

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

     Пример 2.3. Используя векторы U и V, определенные выше, и выполним логическое выражение с оператором Or (|):

U | V

ans =

1

1

1

1

0

1

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

     Пример 2.4. Используя вектор U (см. пример 2.2) построить логическое выражение с оператором Not(~):

~U

ans =

0

1

0

0

1

0

2.5. Элементарные функции

     Система Matlab содержит большое количество элементарных математических функций, таких как abs, sqrt, ехр, sin. Вычисление квадратного корня или логарифма отрицательного числа не является ошибкой; так как в этом случае результатом является соответствующее комплексной число. Matlab также содержит и более сложные функции, большинство из которых имеют комплексные аргументы.

Некоторые функции, такие как sqrt и sin, - встроенные. Они являются частью Matlab, поэтому они очень эффективны, в то время как другие функции реализованы в m-файлах. Поэтому можно легко увидеть их код и в случае необходимости даже модифицировать его.

Перечислим основные элементарные функции.

Тригонометрические функции

sin

Синус

sinh

Гиперболический синус

asin

Арксинус

asinh

Гиперболический арксинус

cos

Косинус

cosh

Гиперболический косинус

acos

Арккосинус

acosh

Гиперболический арккосинус

tan

Тангенс

tanh

Гиперболический тангенс

atan

Арктангенс

atan2

Арктангенс от двух аргументов

atanh

Гиперболический арктангенс

sec

Секанс

sech

Гиперболический секанс

asec

Арксеканс

asech

Гиперболический арксеканс

csc

Косеканс

csch

Гиперболический косеканс

acsc

Арккосеканс

acsch

Гиперболический арккосеканс

cot

Котангенс

coth

Гиперболический котангенс

acot

Арккотангенс

acoth

Гиперболический арккотангенс

Трансцендентные функции

exp

Экспоненциальная функция

log

Функция натурального логарифма

log10

Логарифм по основанию 10

log2

Логарифм по основанию 2

pow2

Экспонента по основанию 2

sqrt

Функция квадратного корня

nextpow2

Ближайшая степень экспоненты по основанию 2

Функции обработки комплексных чисел

abs

Абсолютное значение комплексного числа

angle

Аргумент комплексного числа

conj

Комплексно-сопряженное число

imag

Мнимая часть комплексного числа

real

Действительная часть комплексного числа

unwrap

Непрерывная функция фазового угла

isreal

Истинно, если это массив действительных чисел

cplxpair

Сортировка комплексно-сопряженных пар

Округление и модульная арифметика

fix

Усечение дробной части числа

floor

Округление до меньшего целого

ceil

Округление до большего целого

round

Округление до ближайшего целого

mod

Остаток в смысле модульной арифметики

rem

Остаток от деления с учетом знака

sign

Знак числа

Специальные математические функции

airy

Функция Эйри

bessel

Функция Бесселя первого рода

bessely

Функция Бесселя второго рода

besselh

Функция Бесселя третьего рода (функция Ганкеля)

besselk

Модифицированная функция Бесселя второго рода

beta

Полная бета-функция

betaind

Неполная бета-функция

betaln

Натуральный логарифм полной бета-функции

ellip

Эллиптические функции Якоби

ellipke

Полные эллиптические интегралы

err

Функция ошибки

erfo

Остаточная функция ошибки

erfcx

Масштабированная остаточная функция ошибки

erfinv

Обратная функция ошибки

expin

Интегральная показательная функция

gamma

Полная гамма-функция

gammaln

Натуральный логарифм полной гамма-функции

legendre

Функция Лежандра

cross

Векторное произведение векторов

Теоретико-числовые функции

factot

Разложение числа на простые множители

isprime

Истинно, если число простое

primes

Формирование списка простых чисел

gcd

Наибольший общий делитель

lcm

Наименьшее общее кратное

rat

Приближение числа в виде рациональной дроби

rats

Вычисления в поле рациональных чисел

perms

Формирование всех перестановок элементов вектора

nchoosek

Вычисление числа сочетаний,

Функции преобразования систем координат

cart2sph

Преобразование декартовой системы в сферическую

cart2po

Преобразование декартовой системы в полярную

pol2car

Преобразование полярной системы в декартову

sph2car

Преобразование сферической системы в декартову

hsv2rgb

Преобразование hsv-палитры в rgb-палитру

rgb2hsv

Преобразование rgb-палитры в hsv-палитру

     Рассмотрим несколько примеров.

     Пример 2.5. Вычисление натурального логарифма элементов массива X. Область определения функции включает комплексные и отрицательные числа, что способно привести к непредвиденным результатам при некорректном использовании. Для комплексного или отрицательного z, где z = х + y*i вычисляется комплексный логарифм в виде log(z) = log(abs(z)) + i*atan2(y,x).

Х=[1.2 3.34 5 2.3]; 

log(X)

ans=

-0.1823 1.2060 1.6094 0.8329

     Пример 2.6. Использование функции mod. mod(x,y) - возвращает х mod у; mod(X, Y) - возвращает остаток от деления X на Y (т. е., X - Y.*floor(X./Y)) для ненулевого Y, и X в противном случае. Если операнды X и Y имеют одинаковый знак, функция mod(X, Y) возвращает тот же результат, что mod(Х, Y). Однако (для положительных X и Y) mod(-x,y) = rem(-x,y)+y.

М = mod(5,2)

М =

1

mod(10,4) 

ans =

2

     Пример 2.7. Применение функции pow2. Функция X=pow2(Y) - возвращает массив X, где каждый элемент есть 2Y; pow2(F,E) - вычисляет Х=F*2E для соответствующих элементов F и Е. Аргументы F и Е - массивы действительных и целых чисел соответственно.

d=pow2(pi/4,2)

d =

3.1416

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]