- •Раздел 1 Основные понятия среды matlab
- •1. Начало работы в среде matlab
- •1.1. Характеристика среды matlab
- •1.2. Общие положения и правила работы в среде matlab
- •1.3. Работа в командном окне
- •1.4. Правила и особенности ввода математических выражений
- •1.5. Сохранение содержимого рабочего окна
- •2.2. Типы данных. Описание основных типов
- •2 Системные переменные и типы данных
- •2.1 Системные переменные
- •2.3. Комплексные числа
- •2.4. Символьные переменные
- •2.5. Массивы
- •2.5.1 Задание массивов
- •2.5.2 Доступ к элементам массивов
- •2.5.3 Функции обработки массивов
- •2.6 Тип данных структура (struct)
- •2.6.1 Задание структур
- •2.6.2 Функции обработки структур
- •2.7 Тип данных ячейка (сell)
- •2.8 Функции определения типов
- •2.9 Функции для работы со значениями даты и времени
- •2.10 Функции преобразования типов
- •3. Основные операции и математические функции matlab
- •3.1 Основные арифметические операции
- •3.2 Основные элементарные функции
- •Help имя_функции,
- •3.3 Операции отношения и логические операции
- •4 Операторы среды matlab
- •4.1 Условный оператор if
- •4.2 Условный оператор switch
- •4.3 Реализация циклических процессов
- •4.3.1 Оператор цикла while
- •4.3.2 Оператор цикла for
- •Pause – останавливает выполнение программы до момента нажатия любой клавиши на клавиатуре; pause(n) – останавливает выполнение программы на n секунд;
- •Примеры.
- •Как и в случае сценариев, к подпрограмме функции можно обратиться по имени, более того функции могут быть компонентами математических выражений и операндов, а также параметрами других функций.
- •5.4 Создание подпрограмм с переменным списком входных и выходных параметров
- •5.5 Локальные и глобальные переменные
- •5.6 Созданий функций пользователя и указателей на функции. Функции как аргументы функций.
- •5.8 Сообщения об ошибках
- •6 Ввод данных и работа с файлами
- •6.1 Использование рабочей области Workspace
- •6.2 Чтение и запись неформатированных файлов
- •6. 3 Работа с текстовыми и бинарными файлами
- •6.3.1 Команды открытия и закрытия файлов
- •6.3.2 Команды чтения и записи fread и fwrite
- •6.4 Операции над форматированными файлами
2 Системные переменные и типы данных
2.1 Системные переменные
В среде MATLAB предусмотрены стандартные системные переменные (таблица 1.2). Благодаря использованию системных переменных не возникает зависания системы в случаях выполнения некоторых некорректных арифметических операций. Переменная ans позволяет сохранить результат последней текущей операции.
В отличие от констант, системные переменные могут переопределяться. Можно задать системной переменной eps иное значение, например eps=0.0001. При переопределении значений системных переменных необходимо соблюдать внимательность и осторожность. Однако важно то, что их значения по умолчанию задаются сразу после загрузки системы, поэтому в отличие от обычных переменных, системные переменные определены всегда.
Таблица 1.2. Список системных переменных
Имя переменной |
Значение |
i или j |
мнимая
единица ( |
pi |
число п - 3.1415926... |
eps |
погрешность операций над числами с плавающей точкой (2- 52 ) |
realmin |
наименьшее число с плавающей точкой (2- 1022 ) |
realmax |
наибольшее число с плавающей точкой (2 1023 ) |
inf |
значение
машинной бесконечности
|
ans |
переменная, хранящая результат последней операции и обычно вызывающая его отображение на экране дисплея |
NaN |
указание
на нечисловой характер данных
(Not-a-Number) или неопределенность
|
Примеры.
>> s=0/0 % Использование системной переменной NaN
Warning: Divide by zero. – Предупреждение. Деление на 0.
ans = NaN
>> 2*pi % Использование системной переменной pi.
ans = 6.2832
2.2. Типы данных. Описание основных типов
Тип данных является одним из основных понятий любого языка программирования. Правильное их определение позволяет оптимизировать ресурсы для хранения и выполнения действий.
Среда программирования MATLAB поддерживает довольно широкий набор типов данных, позволяющий легко реализовывать вычисления для различных задач. Все типы данных можно разделить на следующие группы:
числовые данные;
символьные данные;
указатели.
В свою очередь, эти типы делятся на простые и сложные (рис. 1.6).
Рис. 1.6 Структура типов данных MATLAB
Каждый тип данных характеризуется длинной ячейки памяти, необходимой для его хранения, и соответственно точностью или количеством знаков для представления переменных. От выбора типа переменной зависит точность полученых результатов вычислений (максимальное количество верных значащих цифр).
Для определения конкретного типа используются специальные ключевые слова (таблица 1.3).
Таблица 1.3. Основные типы простых числовых данных в MATLAB
Ключевое слово |
Тип |
К-во бит |
double |
вещественный двойной точности |
64 |
single |
вещественный |
32 |
int8 |
знаковый целочисленный |
8 |
int16 |
знаковый целочисленный |
16 |
int32 |
знаковый целочисленный |
32 |
int64 |
знаковый целочисленный |
64 |
uint8 |
целочисленный без знака |
8 |
uint16 |
целочисленный без знака |
16 |
uint32 |
целочисленный без знака |
32 |
uint64 |
целочисленный без знака |
64 |
char |
символьный |
16 – 1 символ |
Установку типа данных можно выполнить командой format.
Синтаксис.
format keyword список переменных, где keyword – имя формата, переменные в спике разделяются запятыми. Если список пуст, то все переменные, определенные после команты format определяются заданым типом.
Примеры.
1) format single x,y; – определяет переменные x, y как действительные числа обычной точности.
2) format int8 Im; – определяет переменную Im как целочисленную, длинной 1 байт;
Также с помощью команды format можно задавать формат вывода числовых значений (таблице 1.4).
Таблица 1.4. Основные форматы числовых данных в MATLAB
Ключевое слово |
Тип |
short |
короткое представление в фиксированном формате (5 знаков) |
long |
длинное представление в фиксированном формате (15 знаков) |
hex |
представление чисел в шестнадцатеричной форме |
bank |
представление для денежных единиц |
rat |
представление чисел в виде рациональной дроби |
Для ключевых слов short и long также можно указывать спецификации:
e – представление числа в экспоненциальной форме
short e – выводит четыре знака после десятичной точки,
например, 3.1416e+000;
long e – выводит семь знаков после десятичной точки для типа
single и 14-15 – для типа double, например. 3.141592653589793e+000;
g – обычное представление десятичного числа;
short g – выводит четыре знака после десятичной точки,
например, 3.1416;
long e – выводит семь знаков после десятичной точки для типа single и 14-15 – для типа double, например, 3.14159265358979;
eng – представление десятичного числа в инженерном формате
short eng – выводит четыре знака после десятичной точки и три значения для представлений степени десятки, например, 3.1416e+000;
long eng – выводит 16 знако после десятичной точки и три значения для представлений степени десятки, например, 3.14159265358979e+000.
Для определения текущего формата используется следующая команда: get(0,'Format').
Примеры.
>> format short % установка короткого представления числа
>> pi
ans = 3.1416
>> format rat % представление десятичного числа в рациональном виде
>> pi
ans = 355/113
>> format hex % представление числа в шестнадцатеричном виде
>> a=256
a = 4070000000000000
Предварительное описание типа не является обязательным, так как в среде MATLAB действует определение типа по умолчанию. При присвоении численного значения переменной она автоматически определяется как матрица размерности 1х1 действительного типа двойной точности и выводится в формате short e.
Пример.
a=2.15 – определяет переменную a как матрицу действительных чисел размерности 1х1.
Некоторые функции ввода автоматически определяют тип переменной, например, функция чтения изображения imread определяет матрицу изображения как целочисленную. Для выполнения некоторых арифметических операций (деление, рациональная степень) данные необходимо переопределить как действительные. Переопределить тип данных можно с помощью оператора присвоения и ключевого слова, задающего тип. Использование ключевых слов позволяет проводить переопределение непосредственно и в арифметических выражениях.
Синтаксис
а=keyword(x), где а – имя переменной, keyword – ключевое слово, определяющее тип переменной, х – значение или имя переменной, которая преобразовывается в новый тип.
Пример.
1) Пусть a действительная переменная.
A= int16(a) – преобразует действительное число a в целое длинной
2 байта.
2) I=imread('F_1.jpg'); – функция imread считывает изображение из файла F_1.jpg и запоминает в матрице I типа uint8.
I=double(I); – преобразование значений матрицы I в действительные числа двойной точности.
