- •Задачи:
- •1 Теоретические основы работы
- •Disp (‘текст’)
- •1.1 Работа с файлами в среде matlab
- •1.2 Основные управляющие конструкции программирования в среде matlab
- •2 Порядок выполнения работы
- •3 Содержание отчета
- •4 Контрольные вопросы
- •Библиографический список
- •Основы программирования в среде компьютерных вычислений matlab
- •443086 Самара, Московское шоссе, 34
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ
УНИВЕРСИТЕТ имени академика С.П. КОРОЛЕВА
(национальный исследовательский университет)»
ОСНОВЫ ПРОГРАММИРОВАНИЯ В СРЕДЕ КОМПЬЮТЕРНЫХ ВЫЧИСЛЕНИЙ MATLAB
САМАРА 2012
Министерство образования и науки
Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ
УНИВЕРСИТЕТ имени академика С.П. КОРОЛЕВА
(национальный исследовательский университет)»
ОСНОВЫ ПРОГРАММИРОВАНИЯ В СРЕДЕ КОМПЬЮТЕРНЫХ ВЫЧИСЛЕНИЙ MATLAB
Методические указания к лабораторной работе
САМАРА 2012
УДК 519.6
Составитель: А.А. Федотов
Основы программирования в среде компьютерных вычислений MATLAB: Метод. указания / – Самар. гос. аэрокосм. ун-т.; сост. А.А. Федотов; Самара, 2012. 16 с.
В методических указаниях изложены основные сведения об особенностях программирования в среде компьютерных вычислений MATLAB. Рассматриваются особенности синтаксиса языка программирования MATLAB при создании компьютерных программ в среде MATLAB, использующих операции ветвления и различные управляющие конструкции. Описаны особенности работы с файлами в среде MATLAB. Приведены порядок выполнения работы и требования к отчету.
Методические указания предназначены для студентов очно-заочной формы обучения, обучающихся по специальности 201000 «Биотехнические системы и технологии» и выполняющих лабораторные работы по дисциплине “Информационные технологии”. Подготовлены на кафедре радиотехники и медицинских диагностических систем.
Табл 2. Библиогр. 4 назв.
Печатаются по решению редакционно-издательского совета Самарского государственного аэрокосмического университета имени академика С.П. Королева
Рецензент: И.А. Кудрявцев
Цель работы: ознакомиться с основами программирования в среде компьютерных вычислений MATLAB, изучить синтаксис языка программирования MATLAB для создания компьютерных программ, содержащих операторы ветвления и циклические операции, а также особенности работы с файлами в среде MATLAB.
Задачи:
1. Изучить синтаксис языка программирования MATLAB для создания компьютерных программ, содержащих операторы ветвления и циклические операции.
2. Изучить синтаксис языка программирования MATLAB для работы с файлами.
3. Используя полученные теоретические сведения, выполнить задания лабораторной работы и подготовить отчет.
1 Теоретические основы работы
Программирование в среде компьютерных вычислений MATLAB является эффективным средством расширения базовых функциональных возможностей системы и ее адаптации к решению специфических задач пользователя. Создание исполняемых программ реализуется с помощью входного языка системы программирования MATLAB, являющегося объектно-ориентированным языком программирования высокого уровня и позволяющего использовать сложные операторы и функции.
Для записи программ в среде MATLAB часто используются m-файлы – последовательности операторов, оформленные в виде текстовых файлов, исполняемых в среде MATLAB. Ввод исходных данных в программе может осуществляться с помощью операций присваивания, с клавиатуры и из файлов, расположенных на локальном диске компьютера.
Для организации диалогового ввода и вывода используются операторы input (ввод данных с клавиатуры) и disp (вывод информации на дисплей), имеющие следующий синтаксис:
X=input(‘текст’)
где: X – переменная, в которой храниться вводимое пользователем значение; в кавычках вводится сообщение, которое будет отображаться на дисплее пользователя.
Оператор disp имеет два режима использования:
disp (А)
где: А – переменная.
Disp (‘текст’)
где в кавычках вводится сообщение, предназначенное для отображения на дисплее.
1.1 Работа с файлами в среде matlab
Создание программ часто предполагает сохранение результатов расчетов в файлы для их дальнейшего анализа, обработки и хранения. В связи с этим в среде MATLAB реализованы различные функции по работе с файлами, содержащие данные в разных форматах.
Для загрузки данных из файла, расположенного на локальном диске в рабочую среду MATLAB, используются следующие операторы: load, fread и fscanf. Для сохранения данных из рабочей среды MATLAB в файл на локальном диске предусмотрено использование следующих операторов: save, fwrite, fprintf.
В самом простом случае для сохранения и последующей загрузки каких-либо данных в среде MATLAB предусмотрены следующие функции, соответственно: save и load, имеющие следующий синтаксис:
save <имя файла> <имена переменных>
load <имя файла> <имена переменных>
Функция save позволяет сохранять произвольные переменные, используемые в программе в файл, который будет по умолчанию располагаться в рабочем каталоге (обычно поддиректория work) и иметь расширение mat. Соответственно функция load позволяет загрузить из указанного mat-файла ранее сохраненные переменные.
Недостатком функций save и load является то, что они работают с определенными форматами файлов (обычно mat-файлы) и не позволяют загружать или сохранять данные в других форматах. Между тем бывает необходимость загружать информацию, например, из бинарных файлов, созданных другими программными продуктами для дальнейшей обработки результатов в среде MATLAB. С этой целью в среде MATLAB предусмотрены следующие функции
fwrite(<идентификатор файла>, <переменная>, <тип данных>)
<переменная>=fread(<идентификатор файла>, <размер>, <точность>)
где: <идентификатор файла> – это указатель на файл, с которым предполагается работать. Для того, чтобы получить идентификатор файла, используется функция fopen, имеющая следующий синтаксис:
<идентификатор файла>=fopen(<имя файла>,<режим работы>)
где: параметр <режим работы> может принимать значения, приведенные в таблице 1.
В том случае, если функция fopen() по каким-либо причинам не может корректно открыть файл, то она возвращает значение –1. После выполнения всех файловых операций файл должен быть закрыт с помощью функции fclose следующей структуры:
fclose(<идентификатор файла>)
С помощью команды fclose(all) можно закрыть сразу все открытые файлы, кроме стандартных системных файлов.
Пример использования функций работы с файлами:
A=[1 2 3 4 5];
fid=fopen('my_file.dat', 'wb'); % открытие файла на запись
fwrite(fid, A, 'double'); % запись матрицы А в файл
fclose(fid); % закрытие файла B=fread(fid, 5, 'double'); % чтение 5 значений в формате double disp(B); % отображение на экране fclose(fid); % закрытие файла
В результате выполнения данных операций в рабочем каталоге MATLAB будет создан файл my_file.dat размером 40 байт, в котором будут содержаться 5 значений типа double, записанных в виде последовательности байт (по 8 байт на каждое значение). Функция fread() считывает последовательно сохраненные байты и автоматически преобразовывает их к типу double, т.е. каждые 8 байт интерпретируются как одно значение типа double.
В приведенном примере в явном виде указывалось число элементов для считывания из файла. Однако, часто общее количество элементов бывает неизвестным, либо изменяется в процессе работы программы. В этом случае необходимо считывать данные из файла до тех пор, пока не будет достигнут его конец. В MATLAB существует функция для проверки достижения конца файла, которая возвращает 1 при достижении конца файла и 0 в других случаях и имеет следующий синтаксис:
feof(<идентификатор файла>)
Таблица 1 - Режимы работы с файлами в среде MATLAB при использовании функции fopen
Значение параметра <режим работы> |
Описание параметра |
'r' |
чтение |
'w' |
запись (стирает предыдущее содержимое файла) |
'a' |
добавление (создает файл, если его нет) |
'r+' |
чтение и запись (не создает файл, если его нет) |
'w+' |
чтение и запись (очищает прежнее содержимое или создает файл, если его нет) |
'a+' |
чтение и добавление (создает файл, если его нет) |
'b' |
дополнительный параметр, означающий работу с бинарными файлами, например, ‘wb’, ‘rb’ ‘rb+’, ‘ab’ |
Описанные ранее функции работы с файлами позволяют записывать и считывать информацию по байтам, которые затем требуется правильно интерпретировать для преобразования их в числа или строки. В то же время выходными результатами многих программ являются текстовые файлы, в которых явным образом записаны те или иные числа или текст. Прочитать такой файл побайтно, а затем интерпретировать полученные данные довольно трудоемкая задача, поэтому для этих целей были специально разработаны функции форматированного чтения или записи информации: fscanf и fprintf, соответственно.
Функция чтения fscanf имеет следующий синтаксис:
[value, count]=fscanf(fid, format, size)
где: value – результат считывания данных из файла; count – число прочитанных (записанных) данных; fid – указатель на файл; format – формат чтения (записи) данных; size – максимальное число считываемых данных
Функция записи fprintf имеет следующий синтаксис:
count=fprintf(fid, format, a, b, ...)
где: a, b,… – переменные для записи в файл.
Таблица 2 - Список основных спецификаторов параметра format для функций fscanf() и fprintf()
Спецификатор |
Описание |
%d |
целочисленные значения |
%f |
вещественные значения |
%s |
строковые данные |
%c |
символьные данные |
%u |
беззнаковые целые значения |
В форматной строке могут быть также использованы различные управляющие символы:
\r – возврат каретки;
\t – горизонтальная табуляция;
\n – переход на новую строку
С помощью функции fprintf() можно осуществлять запись разнородных данных в файл в требуемом формате, в том числе и строковых переменных, что позволяет размещать в файле различные текстовые надписи.
