Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
для вялички / TROPA V MATLAB_21.doc
Скачиваний:
101
Добавлен:
13.02.2016
Размер:
2.79 Mб
Скачать

Вопросы для самопроверки

1. Как вызвать редактор M-файлов

2. Что такое сценарий

3. Что такое файл-функция

4. Какова структура M-файла, содержащего файл-функцию

5. Какую роль играют строки комментариев, располагаемые сразу за заголовком файл-функции

6. Как осуществляется передача информации из командного окна MATLAB в файл-функцию

7. Что такое локальные, глобальные переменные

8. Как получить справку по M-файлам

Глава 4 программирование

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

К основному набору конструкций М-языка относятся также операторы отношения, логические операторы, операторы ветвления и цикла, рассматриваемые в этой главе.

4.1 Операторы отношения и логические операторы

Операторы отношения служат для поэлементного сравнения двух операндов, в качестве которых могут выступать числа, векторы или матрицы. При этом сравниваемые векторы или матрицы должны иметь одинаковые размеры. Если операнды одинаковы, то программа возвращает 1 (True Истина), в противном случае0 (False Ложь). Перечень операторов отношения с соответствующими им функциями представлен в таблице 4.1.

Таблица 4.1. Операторы отношения и их функции

Оператор

Название

Функция

==

Равно

Eq

~=

Не равно

Ne

<

Меньше

Lt

>

Больше

Gt

<=

Меньше или равно

Le

>=

Больше или равно

Ge

Операторы = = и ~= сравнивают действительные и комплексные переменные. При этом сравниваются действительные и комплексные части числа.

Операторы <, <=, >, >= при сравнении комплексных чисел сравнивают только действительные части числа.

Примеры приведены в табл. 4.2.

Таблица 4.2. Примеры использования операторов отношения

Выражение

Функция

Результат

>> 3==3

>> eq(3,3)

ans =

1

>> 5~=5

>> ne(5,5)

ans =

0

>> 4+2i==4+i

>> eq(4+2i,4+i)

ans =

0

>> 7.2<8.3

>> lt(7.2,8.3)

ans =

1

>> 1.4+5i<1.5+i

>> lt(1.4+5i,1.5+i)

ans =

1

>> 3<=2.33

>> le(3,2.33)

ans =

0

Если при вычислениях надо формально определить, является ли переменная x комплексной, можно вызвать функцию isreal(x), возвращающую 1 если x не является комплексной и 0 в противном случае.

В выражениях, вводимых в командном окне системы MATLAB, операторы отношения могут использоваться наряду с арифметическими операторами. Рассмотрим пример вычисления выражения, содержащего операторы отношения:

>> a=1;b=-1;c=2;

>> (a>=c)+(b==a)+(c>a)

ans =

1

Здесь значения выражений (a >= c) и (b == a) равны 0 (Ложь), значение выражения (c > a) равно 1 (Истина). В результате переменная ans, являющаяся суммой значений этих трех выражений, оказывается равной 1.

Операции отношения имеют более низкий приоритет, чем арифметические операции. Но в этом примере переменная ans равна сумме значений трех операций отношения только потому, что эти операции заключены в круглые скобки. Если же скобки опустить, результат будет иным:

>> a>=c+b==a+c>a

ans =

0

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

Пример:

>> A=[1 0;-2 3]

A =

1 0

-2 3

>> B=[2 3;-3 2]

B =

2 3

-3 2

>> A>B

ans =

0 0

1 1

В операторах отношения допустимо сравнение массива и числа. В этом случае происходит сравнение каждого элемента массива с числом. Результатом является массив того же размера, что и исходный.

Пример:

>> A=[1 0;-2 3];b=0.5;

>> A>b

ans =

1 0

0 1

Логические операторы предназначены для выполнения поэлементных логических операций над массивами одинаковых размеров. Логические операторы и соответствующие им функции приведены в табл. 4.3.

Таблица 4.3. Логические операторы и их функции

Оператор

Название

Функция

&

Логическое И

And

|

Логическое ИЛИ

Or

Отсутствует

Исключающее ИЛИ

Xor

~

Логическое НЕ

Not

Первые три операции являются двухоперандными (бинарными), а операция < Не > является унарной (однооперандной).

При выполнении логических операций «истинными» считаются операнды, не равные нулю, а «ложными» – операнды, равные нулю. При этом результатом операции < И > будет 1, если оба операнда не равны нулю, и 0, если хотя бы один из операндов нулевой. Операция < ИЛИ > дает 1, если хотя бы один операнд не равен нулю. Операция < исключающее ИЛИ > выдает 1 лишь тогда, когда один из операндов равен нулю, а другой не равен, в остальных случаях она выдает 0. Операция < НЕ > выдает 1, если ее единственный операнд равен нулю, и 0 в противном случае.

Примеры использования логических операторов:

>> A=[1 0;-2 3];B=[2 3;-3 2];

>> and(A,B) или >> A&B

ans =

1 0

1 1

>> or(A,B) или >> A|B

ans =

1 1

1 1

>> xor(A,B)

ans =

0 1

0 0

>> not(A) или >> ~A

ans =

0 1

0 0

Элементами логических операторов могут быть массив и число. В этом случае происходит поэлементное выполнение логической операции для каждого элемента массива и числа. Результатом является массив того же размера, что и исходный.

Пример:

>> A=[1 0;-2 3];b=3;

>> xor(A,b)

ans =

0 1

0 0

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

Приоритеты операций системы MATLAB в порядке убывания приведены ниже:

1. Круглые скобки <( )>.

2. Транспонирование <.'>, транспонирование с комплексным сопряжением<'>, возведение в степень <^>, поэлементное возведение в степень <.^>.

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

4. Умножение и деление (в том числе поэлементное) <*>, </>, <\>, <.*>, <./>, <.\>.

5. Сложение <+> и вычитание <–>.

6. Операции отношения <, <=, >, >=, ==, ~=.

7. Логическое И <&>.

8. Логическое ИЛИ <|>.

Отметим, что сначала выполняются операции над аргументами функций eq, ne, lt, gt, le, ge, and, or, not, если использовать их вместо соответствующих им операторов. Например, два выражения and(A,B)+F и A&B+F не эквивалентны.

Справку можно получить с помощью команды doc ops.

Соседние файлы в папке для вялички