Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №4.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
51.74 Кб
Скачать

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ

УНИВЕРСИТЕТ имени академика С.П. КОРОЛЕВА

(национальный исследовательский университет)»

ОСНОВЫ ПРОГРАММИРОВАНИЯ В СРЕДЕ КОМПЬЮТЕРНЫХ ВЫЧИСЛЕНИЙ 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() можно осуществлять запись разнородных данных в файл в требуемом формате, в том числе и строковых переменных, что позволяет размещать в файле различные текстовые надписи.