
- •190000, Санкт-Петербург, ул. Б. Морская, 67
- •1. Идеология MatLab и Octave
- •2. Возможности MatLab и Octave
- •3. Управление командным окном
- •4. Организация системы помощи в MatLab и Octave
- •5. Ввод и генерация данных
- •6. Ввод констант и специальных чисел в MatLab и Octave
- •7. Ввод данных в диалоговом режиме
- •8. Генерация специальных матриц
- •9. Манипуляции с матрицами в MatLab и Octave
- •10. Работа с символьными переменными
- •11. MatLab (Octave) как сложный калькулятор
- •12. Визуализация данных
- •13. Работа с файлами
- •14. Программирование в MatLab и Octave
13. Работа с файлами
Для работы с файлами данных и программ в MatLab и Octave необходимо, чтобы эти файлы находились в пути поиска MatLab (Octave). По умолчанию, созданные в MatLab файлы сохраняются в папку work (MatLab).
При сохранении файлов данных и программ, необходимо следить за правильностью написания имен файлов, которые должны удовлетворять следующим правилам:
Имя файла не должно совпадать с именем функции.
Не должно начинаться с цифры.
Не должно содержать или состоять из букв кириллицы.
В имени файлов не должно быть пробелов.
В имени файлов не должны использовать большие буквы.
Примеры правильного и неправильного написания имен файлов приведены в таблице 15.
Таблица 15 - Неправильное и правильное написание имен файлов
Неправильно |
Правильно |
Комментарий |
1.m |
odin.m |
Имя файла не должно начинаться с цифры |
mean.m |
srednee.m |
Имя файла совпадает с именем функции mean (среднее) |
мой_файл1.m |
myfile1.m |
Имя файла содержит символы кириллицы |
moj file1.m |
moj_file1.m |
Имя файла содержит пробел |
MyFile3.m |
myfile3.m |
Имя файла содержит большие буквы |
Часто возникает необходимость сохранить результат своей работы. В зависимости оттого, что нужно сохранить (переменные, сессия, программа) используются следующие команды (табл.16).
Таблица 16 - Команды работы с файлами
Назначение |
Синтаксис |
Пример команды |
Сохранение переменной |
save имя файла имя переменной |
a=1 save myfile a |
Загрузка переменной |
load имя сохраненного файла |
load myfile |
14. Программирование в MatLab и Octave
Ввод команд в командной строке – не единственный вариант работы в MatLab и Octave. Оба пакета позволяют пользователю писать собственные функции (в данном методическом пособии написание функций не рассматривается) и программы (scripts), реализующие различные алгоритмы обработки данных. В качестве языка программирования можно использовать, например язык Си, но проще реализовывать программы на языке MatLab – последовательность необходимых функций MatLab. Программы можно писать в любом текстовом редакторе (например, Блокнот) используя расширение *.m (примеры правильных имен файлов приведены в табл.15). В MatLab также имеется встроенный редактор/отладчик (Editor/Debugger), вызываемый из командного окна с помощью команды edit.
Перед запуском программы её необходимо сохранить с расширением .m, при этом важно, чтобы файл был сохранен в папке, имя которой включено в путь данного математического пакета. Для MatLab это папка work: Имя диска.../MatLab/work, для Octave – Имя диска.../GNU Octave 2.1.73/usr/share/Octave/2.1.73/site/m/.
После сохранения программу можно запустить путем набора её имени (без расширения) в командном окне и нажатии Enter. Программа запустится при условии, если:
– она написана правильно,
– она сохранена с корректным именем в корректной папке.
П
ример
простой программы для Octave
приведен на рис.6.
Рис.6 – Пример построения графика синуса с заданной пользователем амплитудой
Программа сохранена в папке Имя диска.../GNU Octave 2.1.73/usr/share/Octave/2.1.73/site/m/ с именем program.m. Запуск осуществляется из командной строки путем набора имени файла program (без расширения).
Рекомендуемая литература
1. Потемкин В. Г. Система MatLab. Справочное пособие. – Диалог-МИФИ. –1997.
2. Потемкин В. Г. MatLab 5 для студентов. – Диалог-МИФИ. – 1999.
3. Потемкин В. Г. Система инженерных и научных расчётов MatLab 5.х. В 2-х томах. – Диалог-МИФИ. – 1999.
4. Мартынов Н.Н . Введение в MatLab 6. –М .: КУДИЦ -ОБРАЗ , 2002.
5. Мартынов Н.Н . MatLab 5 х . Вычисления , визуализация ,
программирование . –М .: КУДИЦ -ОБРАЗ , 2000.
6. Электронные учебники по основам MatLab.
7. www.exponenta.ru
Содержание
Предисловие
Идеология MatLab и Octave.
Возможности MatLab и Octave.
Управление командным окном.
Организация системы помощи в MatLab и Octave.
Ввод и генерация чисел.
Ввод констант и специальных чисел в MatLab и Octave.
Ввод данных в диалоговом режиме.
Генерация специальных матриц.
Манипуляции с матрицами в MatLab и Octave.
Работа с символьными переменными.
MatLab (Octave) как сложный калькулятор.
Визуализация данных.
Работа с файлами.
Программирование в MatLab и Octave.
Рекомендуемая литература.
Приложение 1. Контрольные вопросы.
Приложение 2. Наиболее распространенные причины ошибок при работе в MatLab и Octave.
Приложение 3. Задание по вычислительной практике.
Приложение 4. Требования к содержанию отчета.
Приложение 1. Контрольные вопросы
Назначение команд управления командным окном: format, clс, home, clear.
Назначение клавиш на клавиатуре?
Назначение сочетания клавиш Ctrl+C на клавиатуре.
Виды помощи в MatLab и команды их вызова?
Назначение и синтаксис* команды lookfor?
Назначение команды demos?
Назначение команды help /?
Назначение команды help elfun?
Назначение команды help elmat?
Что такое матрица, вектор-строка, вектор-столбец, скаляр?
Назначение служебных символов «;» «:» «…» (точка с запятой, двоеточие, многоточие) в командном окне MatLab?
Как создать в MatLab переменную и присвоить ей значение?
Представление чисел π, е, мнимой единицы, бесконечности, не числа, пример ввода числа с плавающей запятой в MatLab.
Назначение и синтаксис команд input?
Как ввести вектор-строку, вектор-столбец и матрицу на примере вектора из 4-х элементов и матрицы размером 2х2?
Назначение и синтаксис команд: rand, randn, zeros, ones, eye?
За что отвечают при обращении к вектору V(i) и матрице M(i,j) индексы i и j?
Как осуществить доступ к отдельным элементам матрицы, используя выражения вида V(i), M(i,j)? Как осуществить выделение из матрицы 2х2 вектора-строки и вектора-столбца?
Назначение и синтаксис команд: сat, rot90?
Назначение и синтаксис команд: inv, det, rank, «’»?
Назначение и синтаксис команд: size и length?
Назначение и синтаксис команды disp?
Назначение и синтаксис команд: plot, axis, grid, title, xlabel, ylabel, legend?
Как отобразить несколько графиков в одном окне с помощью команды subplot?
Назначение и синтаксис команд: stem, stairs, pie, pie3, polar, semilogx, semilogy, hist?
В какую папку по умолчанию сохраняются созданные файлы?
Под какими именами не следует сохранять файлы?
Как сохранить и загрузить сессию в текстовом файле с помощью команд save и load?
Назначение и синтаксис команд: mean, std, var?
Приложение 2. Наиболее распространенные причины ошибок при работе в MatLab (Octave)
Использование запятой вместо точки в качестве десятичного разделителя.
Неправильно использованные скобки.
Неправильное имя файла.
Приложение 3. Задание по вычислительной практике
Задание по вычислительной практике выполняется студентом индивидуально согласно варианту. Выбор варианта осуществляется по таблице 17: F- первая буква фамилии, I- первая буква имени, O- первая буква отчества, N-первая цифра номера школы. Например, Сидоров Иван Петрович из 123 школы:
F=1.2
I=0.7
O=0.7
N=-1.6
В дальнейшем эти числа используются для составления индивидуальных матриц и векторов. Например:
матрица 1х1: a=F=1.2
вектор-строка: A=[F I O N] = [1.2 0.7 0.7 -1.6]
матрица 2х2: A=[F I; O N] = [1.2 0.7; 0.7 -1.6]
Таблица 17 – Варианты заданий
|
F |
I |
О |
N |
1АБВ |
-0.4 |
0.2 |
-0.1 |
-1.6 |
2ГДЕ |
-1.7 |
-0.2 |
-0.8 |
-1.4 |
3ЖЗИ |
0.1 |
0.7 |
0.3 |
-0.4 |
4КЛМ |
0.3 |
-0.6 |
-1.3 |
0.7 |
5НОП |
-1.1 |
2.2 |
0.7 |
0.8 |
6РСТ |
1.2 |
-0.1 |
1.6 |
0.7 |
7УФХ |
1.2 |
0.1 |
-0.7 |
0.6 |
8ЦЧШ |
-0.1 |
1 |
0.8 |
1.3 |
9ЩЭЮЯ |
0.3 |
0.1 |
1.2 |
-0.7 |
При использовании в качестве операндов некоторых функций (например, логарифмов) отрицательных чисел будет происходить ошибка. В данном случае разрешается использовать любое другое корректное численное значение операнда.
Приложение 4. Требования к содержанию отчета
Отчет должен содержать:
Титульный лист по стандарту СПбГУАП. Заголовок - Отчет о вычислительной практике. «Знакомство с математическими пакетами MatLab (Octave)».
Индивидуальный вариант задания: F=1.2 I=0.7 O=0.7 N=-1.6.
Таблицы 2 и 3 данного методического руководства без изменений.
Таблица 4 с данными из индивидуального задания (F,I,O,N).
Таблица 5 с измененной последней строкой (ввод числа с плавающей точкой). Приведите собственный пример числа с плавающей точкой.
Таблица 6. Вместо указанных матриц сгенерируйте матрицы размерностью 2х3.
Таблицы 7 и 8 с данными из индивидуального задания (F,I,O,N).
10. Пример с использованием собственных ФИО, номера школы и телефона.
Таблицы 9, 10, 11 с данными из индивидуального задания (F, I, O,N).
Таблица 12. Вывести собственную фамилию и численное значение N.
Таблица 13 данного методического руководства без изменений.
Таблица 14. Функции stem, stairs, pie, pie3 c данными из индивидуального задания (F, I, O,N). Остальное – без изменений.
Таблицы 15, 16 без изменений.
Индивидуальное задание: напишите на языке MatLab и рассчитайте выражение
a=sin(eF)+cos(Iπ)
где F и I – из варианта индивидуального задания (табл. 17).
Приведите листинг и результат работы сценария (программы), которая:
- формирует вектор X длиной 4x1 из данных, введенных пользователем согласно варианту, указанному в Таблице 17.
- отображает введенные данные на графике, добавляет сетку, заголовок, подписи к осям (команды: plot, grid, title, xlabel, ylabel),
- строит на отдельном графике результат обработки введенных данных (согласно варианту см. Таблицу 18) + добавляет сетку, заголовок, подписи к осям (команды: title, xlabel, ylabel).
Таблица 18. Варианты заданий
Фамилия |
F |
АБВ |
sin(X) |
ГДЕ |
cos(X) |
ЖЗИ |
ln(X2) |
КЛМ |
lg(X2) |
НОП |
abs(X) |
РСТ |
sqrt(X2) |
УФХ |
exp(X) |
ЦЧШ |
ceil(X) |
ЩЭЮЯ |
floor(X) |
Скопировать график в буфер обмена можно обратившись к меню Edit → Copy figure на самом графике (для MatLab). Для Octave навести указатель мыши на заголовок графика
далее нажать правую кнопку мыши → Options → Copy to Clipboard.
16. Список используемой литературы.