- •Раздел 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.10 Функции преобразования типов
В среде MATLAB предусмотрены функции преобразования типов подобные С Bulder и Delphy (таблица 1.12).
Синтаксис.
тип_1_2_тип_2(val), где тип_1 исходный тип переменной; тип_2 – тип в который выполняется преобразование, val – значение или ыражение. подлежащее преобразованию, форма представления которого должна соответствовать правилам начертания типа_2 (идентификаторы типов разделяются символом 2).
Таблица 1.12. Абревиатуры определения типа
Абревиатура |
Назначение |
num |
числовое значение |
dec |
десятичное число |
double |
десятичное число двойной точности |
mat |
матрица |
str |
символьное значение |
bin |
бинарное значение |
struct |
структура |
cell |
ячейка (cellstr(S) символ 2 не ставится) |
func |
функция |
Также реализована функция str2angle(strings) (и обратная функция angl2str), позволяющая преобразовывать символьную строку strings в формат – градусы-минуты-секунды. Набор функций и правила их задания более детально представлены в документации к среде MATLAB.
Примеры.
1) >> str2num('2 4; 6 8') – преобразование строки символов в матрицу
ans = 2 4
6 8
2) >> str2double('123.45e7') – преобразует строку в десятичное число двойной точности
ans = 1.2345e+009
3) >> str2double('2.7i - 3.14') преобразует строку в комплексное число
ans = -3.1400 + 2.7000i
4) >> A = rand(2,7,3); - формирует матрицу случайных чисел A размерности 2х7х3
C = num2cell(A) – преобразует матрицу A в ячейку с именем C
C(:,:,1) =
[0.9172] [0.7572] [0.3804] [0.0759] [0.5308] [0.9340] [0.5688]
[0.2858] [0.7537] [0.5678] [0.0540] [0.7792] [0.1299] [0.4694]
C(:,:,2) =
[0.0119] [0.1622] [0.3112] [0.1656] [0.2630] [0.6892] [0.4505]
[0.3371] [0.7943] [0.5285] [0.6020] [0.6541] [0.7482] [0.0838]
C(:,:,3) =
[0.2290] [0.1524] [0.5383] [0.0782] [0.1067] [0.0046] [0.8173]
[0.9133] [0.8258] [0.9961] [0.4427] [0.9619] [0.7749] [0.8687]
5) >> s.category = 'tree'; s.height = 37.4; s.name = 'birch'; – задание структуры
>> s – вывод структуры на экран
s = category: 'tree'
height: 37.4000
name: 'birch'
>> c = struct2cell(s) – преобразование структуры в ячейку
c = – вывод ячейки на экран
'tree'
[37.4000]
'birch'
Контрольные вопросы
Какие системные переменные предусмотрены в среде MATLAB? В чем их отличие от системных констант?
Как можно классифицировать типы данных среды MATLAB?
Какие простые типы данных реализованы в среде MATLAB?
Какие сложные типы данных реализованы в среде MATLAB?
Какой командой можно описать тип данных?
Какие форматы числовых данных предусмотрены в среде MATLAB?
Какие существуют способы задания символьных переменных?
Какие действительные типы данных предусмотрены в среде MATLAB?
Какие предусмотрены целые типы данных?
Как можно задать комплексные числа?
Как можно задать массивы (вектора, матрицы)?
Какая команда позволяет выполнять объединение нескольких массивов?
Как осуществляется в среде MATLAB доступ к элементам массивов?
Какие стандадартные функции существуют в среде MATLAB для формирования массивов?
Для формирования каких специальных матриц, в среде MATLAB предусмотрены стандартные встроеные функции?
Каки встроенные функции Вы знаете для обработки и получения характеристик массивов?
Что такое тип данных "структура" и как он описывается?
Можно ли создать массив структур?
Как осуществляется доступ к элементам структуры?
Какие стандартные функции предусмотрены в среде MATLAB для работы со структурами?
Можно ли использовать команду множественного присвоения для рабоы сос труктурами?
Что такое тип данных "ячейка" и как он описывается?
Можно ли преобразовать структуру в ячейку и если да, то с помощью какой команды?
Какая команда позволяет преобразовать числовой массив в ячейку?
Как можно просмотреть содержимое ячейки?
С помощью какой команды можно вывести графическое представление структуры ячейки?
Какие способы определения типа данных предусмотрены в среде MATLAB?
Как можно выполнить преобразование типов данных в среде MATLAB и, какие правила при этом необходимо учитывать?
Какие форматы представления даты и времени предусмотрены в среде MATLAB?
Какие стандартные функции позволяют выполнять преобразование форматов для данных "дата-время"?
С помощью каких функции можно определить текущую дату и время и временной интервал?
Предусмотрена ли среде MATLAB возможность определения времени загружености процессора некоторым приложением?
Упражнения.
1. Определите текущий формат представления чисел командой get. Установите формат – действительные числа в обычной десятичной форме и выведите значение е (ехпоненты) с точностью не менее чем до 12 знака. Преобразуйте значение в целочисленное представление. Сравните результаты.
(Подсказка: forman long g; e=exp(1) int16(e)).
2. Задайте комплексное число z= 2,5+1,2i. Найдите: модуль, сопряженное число. действительную и мнимую части. аргумент.
(Ответ: 1,92093; 1,5-1.2i; 1.5; 1,2; 0,67474)
3. Задайте символьной переменной b значение "a" двумя способами: используя ключевое слово syms; используя апострофы. Преобразуйте переменную b в целое число. Сравните значения.
(Подсказка: 1) syms b; b=a 2) b='a', int16(b)).
4. Из чисел от 1 до 4 сформируйте вектор столбец b и марицу а размерности 2х2. найдите: сумму чисел вектора столбца; нормы вектора b и марицы А; число обусловленности матрицы А. Определите размерность вектора-столбца и матрицы используя матричные функции и команду whos.
5. Из чисел от 1 до 9 сформируйте квадратную матрицу А. Транспонируйте ее и выполните поворот командой rot90, сравните результаты. Переставте столбцы и извлеките диагональ, а также верхнюю и нижнюю треугольные матрицы. Удалите второй столбец.
6. Сформируйте магический квадрат размерности 4. Найдите для него значение определителя и обратную матрицу.
7. Сформируйте матрицы случайных чисел с равномерным и нормальным законами распределения размерности 4. Найдите для них вектора минимальных значений. Объедените эти матрицы в одну размерности 8х4, разместив их последовательно по горизонтали. Извлеките из образованой матрицы вектор максимальных значений строк (подсказка: так ка функция max извлекает значения по столбцам, то матрицу надо транспонировать).
8. Используя команды для создания матриц специального типа, сформируйте матрицу размерности 5х5. Удалите второй стлбец матрицы и третью строку. Выведите результаты на экран.
9. Сформируйте квадратную сетку на плоскости размерности 5, используя команду meshgrid.
10. Сформируйте структуру студент, содержащую поля: ФИО, дата поступления. факультет, сиециальность, группа. Удалите поле даты поступления. Сформируйте массив из 5 записей. Задайте значения полям записей, Выведите вторую запись.
11. Сформируйте массив из нескольких ячеек, где каждая ячейка состоит из элементов, типа числового значения, сток символов, массива. Выведите на экран структуру ячейки в текстовом и графическом представлении. Задайте значения элементам ячейки. Выведите на экран значение второй ячейки. Измените значения первого элемента.
12. Сформируйте квадратную матрицу и найдите для нее вектор собственных значений V. Преобразуйте вектор V в тип "ячейка".
13. Используя команды обработки данных типа "дата", выведите на экран текущую дату в строков и внутреннем формате.
14. Выведите на экран календарь на следующий месяц. Запишите в переменную mydate значения первого воскресенья месяца.
