- •Введение
- •Лабораторная работа ип1 Знакомство с Matlab
- •1. Рабочая среда Matlab
- •2. Данные Matlab
- •Типы данных
- •Числовые константы
- •Символьные константы
- •Переменные
- •3. Выражения
- •3.1. Арифметические выражения
- •3.2. Логические выражения
- •3.3. Порядок вычисления выражений
- •4. Сообщения об ошибках и исправление ошибок
- •5. Завершение вычислений
- •6. Завершение работы с системой
- •7. Резюме
- •8. Контрольные вопросы
- •9. Индивидуальные задания
- •Лабораторная работа ип2 работа с матрицами в matlab
- •1. Общие сведения
- •2. Одномерные массивы – векторы
- •3. Двумерные массивы – матрицы
- •4. Использование двоеточия
- •4.1. Автозаполнение
- •4.2. Индексация
- •5. Поэлементные и матричные операции
- •6. Стандартные функции для работы с матрицами
- •7. Логическое индексирование
- •8. Контрольные вопросы
- •9. Индивидуальные задания
- •10. Упражнения
- •2. Диалоговый ввод/вывод
- •3. Управление последовательностью исполнения операторов
- •3.1. Оператор условия if
- •3.2. Оператор переключения
- •3.3. Оператор цикла с определенным числом повторений
- •3.4. Оператор цикла с неопределенным числом повторений
- •4. Контрольные вопросы
- •5. Индивидуальные задания
- •Лабораторная работа ип4 визуализация данных в matlab
- •1. Общие сведения
- •2. Построение таблицы значений функции
- •3. Двумерная графика
- •3.1. Общие правила построения графиков
- •3.2. Оформление графиков
- •3.3. Построение графиков
- •3.4. Управление свойствами графиков
- •4. Трехмерная графика
- •4.1. Общие принципы построения трехмерных графиков
- •4.2. Построение трехмерных графиков
- •4.3. Управление свойствами трехмерных графиков
- •5. Контрольные вопросы
- •6. Индивидуальные задания
- •Лабораторная работа ип5 файл-функции
- •2. Описание m-функции
- •3. Обращение к m-функции
- •4. Параметры-функции
- •5. Разновидности m-функций
- •5.1. Подфункции
- •5.2. Вложенные функции
- •6. Контрольные вопросы
- •7. Индивидуальные задания
- •2. Аппроксимация
- •2.1. Моделирование полиномом по методу
- •2.2. Аппроксимация произвольной функцией
- •3. Интерполяция
- •3.1. Кусочная интерполяция
- •3.2. Кубические сплайны
- •3.3. Интерполяция произвольной нелинейной функцией
- •4. Контрольные вопросы
- •5. Индивидуальные задания
- •Лабораторная работа ип7 Вычисление функций разложением в ряд
- •1. Общие сведения
- •2. Индивидуальное задание
- •Лабораторная работа ип8 Решение нелинейных уравнений в среде Matlab
- •1. Общие сведения
- •2. Поиск корней полиномов
- •3. Решение одного нелинейного уравнения
- •4. Решение систем нелинейных уравнений
- •5. Контрольные вопросы
- •6. Индивидуальные задания
- •Лабораторная работа ип9 обмен данными с текстовым файлом
- •1. Общие сведения
- •2. Открытие файла
- •3. Запись в текстовый файл
- •3.1. Запись строковых значений
- •3.2. Запись числовых значений
- •4. Чтение из текстового файла
- •4.1. Последовательное чтение строк
- •4.2. Последовательное чтение нескольких символов
- •4.3. Чтение чисел из текстового файла
- •4.4. Альтернативный доступ к текстовому файлу
- •5. Закрытие файла
- •6. Контрольные вопросы
- •7. Индивидуальные задания
- •Заключение
- •Список рекомендуемой литературы
- •Программирование в matlab
- •428015 Чебоксары, Московский просп., 15
3.2. Логические выражения
Логические выражения строятся на основе логических функций (табл. 1.5), операций отношения (сравнения) и логических операций (табл. 1.6).
Таблица 1.5
Функция |
Описание |
and(x,y) |
логическое И (конъюнкция) |
or(x,y) |
логическое ИЛИ (дизъюнкция) |
xor(x,y) |
логическое или НЕ(возвращает значение истина, когда аргументы разные) |
not(x) |
логическое НЕ (инверсия) |
Операндами логического выражения могут быть как числовые, так и символьные данные.
Таблица 1.6
Знак операции |
Операция |
Пример |
~ |
Логическое отрицание |
~ -10 ans = 0 |
== |
Проверка на равенство |
>> 100==1e2 ans = 1 |
~= |
Проверка на неравенство |
>> 'A'~='a' ans = 1 |
> |
Проверка на "больше" |
>> 'w'>'W' ans = 1 |
>= |
Проверка на "больше или равно" |
>> sqrt(5)>=2 ans = 1 |
< |
Проверка на "меньше" |
>> cos(2*pi/3)<0 ans = 1 |
<= |
Проверка на "меньше или равно" |
>> abs(1+2j)<=1 ans = 0 |
& |
Логическое умножение |
>> 10 & 0 ans = 0 |
| |
Логическое сложение |
>> 10 | 0 ans = 1 |
При выполнении логических операций действует следующее соглашение: ненулевые значения рассматриваются как истина (true), а нулевые как ложь (false). Для символьных данных в качестве значения используется порядковый номер символа в кодовой таблице. Результатом вычисления логического выражения является 0 (ложь, false) или 1 (истина, true). Причем это значения логического типа! Логические операторы & и | учитывают оба операнда для вычисления результата. В ряде случаев значение логического выражения определяется значением только первого операнда. Например, если первый операнд логического умножения равен false, то результат всегда будет false и незачем вычислять значение второго операнда. Операторы && и || отличаются тем, что они в подобных ситуациях не проверяют значение второго операнда.
3.3. Порядок вычисления выражений
Порядок вычисления скалярных выражений соответствует правилам, общепринятым в математике (табл. 1.7).
Таблица 1.7
Приоритет |
Знак операции |
Операция |
1 |
not and or xor и др. |
Вычисление функций |
2 |
~ |
Отрицание |
3 |
+ - ^ ' |
Знак плюс или минус перед числом, возведение в степень, транспонирование |
4 |
* / \ |
Умножение, деления |
5 |
+ - |
Сложение, вычитание |
6 |
== ~= > >= < <= |
Операции отношения (сравнения) |
7 |
& |
Логическое умножение |
8 |
| |
Логическое сложение |
9 |
&& |
Сокращенное логическое умножение |
10 |
|| |
Сокращенное логическое сложение |
Сначала вычисляются функции, потом выполняются однооперандные операции, затем – арифметические операции: сначала типа "умножение", потом типа "сложение", затем выполняются операции отношения и в последнюю очередь – двухоперандные логические операции & и |.
Пример
>> 2*-3^2+-7
ans =
-25
Выражение вычисляется следующим образом: 3 возводится в квадрат, полученное значение 9 берется с минусом (унарный минус) и умножается на 2, получается значение -18, которое затем складывается с числом -7. Для изменения порядка выполнения операций следует использовать круглые скобки. Например
>> 2*(-3)^2+-7
ans =
11
Операции одного приоритета выполняются слева направо
>> 2^3^2
ans =
64
>> (2^3)^2
ans =
64
Примечание: 1. В более ранних версиях Matlab некоторые операции имели другой приоритет. Например, & и | были одного приоритета. В Matlab7 у операции & приоритет выше, чем у |.
2. Поскольку сначала выполняются операции над аргументами функций, то выражения, одинаковые в математике, являются не эквивалентными в Matlab! Например, and(c,d)+w и c&d+w дают разные результаты при с=false, а d и w=true.
Рекомендация: если есть сомнения в порядке вычисления выражения – ставьте скобки. Это тот случай, когда "кашу маслом не испортишь".
Полный перечень символов операций и дублирующих их функций, сгруппированных по назначению, можно просмотреть на экране, дав в командной строке команду help ops.