- •Введение
- •Лабораторная работа ип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
2. Диалоговый ввод/вывод
В процессе выполнения m-файла пользователь может вывести на экран запрос и ввести соответствующую информацию с клавиатуры; сделать паузу до нажатия клавиши.
Формирование запроса для ввода данных с клавиатуры выполняется функцией input
ИмяПеременной = input('Текст запроса')
При выполнении данной операции присваивания в командное окно выводится сообщение Текст запроса и выполнение программы приостанавливается до тех пор, пока пользователь не введет число с клавиатуры и не нажмет на клавишу Enter.
Функция возвращает введённое с клавиатуры числовое значение и размещает его в переменной, имя которой указано слева от оператора присваивания
>> x = input('Задайте значение аргумента ')
Задайте значение аргумента 7.5
x =
7.5000
По умолчанию выполняется эхо-печать значения переменной-приемника. Как и для любой функции использование символа ; подавляет печать результата ввода. Если в ответ на запрос пользователь вводит арифметическое выражение, то функция input вычисляет его и возвращает в переменную-приемник полученное значение
>> f=50;
>> w = input('Задайте частоту в рад/с ')
Задайте частоту в рад/с 2*pi*f
w =
314.1593
Можно вводить и матрицы
>> coord = input('Задайте координаты точки ')
Задайте координаты точки [2.5 -3]
coord =
2.5000 -3.0000
или
>> A = input('Задайте матрицу 4 на 4 ')
Задайте матрицу 4 на 4 [11 12; 21 22]
A =
11 12
21 22
Функция input может возвращать не только числовые значения, но и строковое выражение, вводимое пользователем. Для ввода строки символов в список параметров функции вторым входным аргументом необходимо указать 's'. На запрос input следует ввести строку текста, не заключая ее в апострофы. Например
>> file_name = input('Укажите имя файла: ','s')
Укажите имя файла: data.txt
file_name =
data.txt
Переменная file_name становится строкой из восьми символов.
Если в списке параметров функции input не указать 's', то строковое значение необходимо вводить в апострофах
>> symbol = input('Введите символ: ');
Введите символ: 'W'
symbol=
W
Для выдачи результата на экран используется функция disp, предназначенная для вывода значений в командное окно Matlab. С ее помощью можно выводить числовые, символьные (текст) и логические значения, задавая их константами, именами переменных или выражениями соответствующего типа. По-умолчанию функция работает только с одним входным параметром и каждый disp начинает вывод значений с новой строки. Если одним disp необходимо вывести несколько значений в одной строке, то их следует конкатенировать (сцепить) в единый вектор (подобную "хитрость" мы уже применяли при использовании функции size для работы с матрицами). Внимание: сцеплять разрешено только однотипные данные! В связи с этим полезными бывают функции преобразования типа (табл. 3.1). Имена функций преобразования построены по схеме
исходный_тип to тип_результата
(вместо to используется 2).
Таблица 3.1
Функция |
Описание |
Пример использования |
num2str |
Преобразование числового значения в строковое |
>> stroka=['2+3=' num2str(2+3)] stroka = 2+3=5 |
str2num |
Преобразование строкового значения в числовое |
>> s=['1.5' '-2j'] >> number=str2num(str) number = 1.5000 - 2.0000i |
В некоторых случаях бывает целесобразно устанавливать паузу между отдельными шагами алгоритма, например, при выводе на экран последовательности графиков. Команда
pause
останавливает выполнение программы до тех, пока не будет нажата какая-нибудь клавиша. Чтобы реализовать паузу в n секунд, необходимо выполнить
pause(n).