Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


M-файлы, программ и функций




Тема 3.4.М-файлы и программирование средствами MatLab

 

Основные понятия и средства программированиям в MatLab

M-файлы, программ и функций

Работа с m-файлами

Редактор m-файлов

Основные операторы m-языка

Основные понятия и средства программированиям в MatLab

До сих пор мы в основном использовали систему MatLab в режиме непосредственного счета – в командном режиме (командном окне). Однако при решении серьезных задач возникает необходимость сохранения используемых последовательностей вычислений, а также их дальнейшей модификации. Иными словами, существует необходимость программирования решения задач.

Это может показаться отходом от важной цели, которая преследуется разработчиками большинства математических систем, – выполнения математических вычислений без использования традиционного программирования. Однако это не так. Выше было показано, что множество математических задач решается в системе MatLab без программирования. С использованием языков высокого уровня для их решения потребовалось бы написать и оттестировать сотни программ.

Практически невозможно предусмотреть в одной, даже самой большой и мощной, математической системе возможность решения всех задач, которые могут интересовать пользователя. Программирование в системе MatLab является эффективным средством ее расширения и адаптации к решению специфических проблем. Оно реализуется с помощью языка программирования системы MatLab.

Большинство объектов этого языка, в частности все команды, операторы и функции, одновременно являются объектами входного языкаобщения с системой в командном режиме работы. Так что фактически мы приступили к описанию языка программирования системы MatLa b с первых строк данной книги.

Так в чем же отличие входного языка от языка программирования? В основном – в способе фиксации создаваемых ими кодов. Сессии в командном режиме работы не сохраняются в памяти компьютера. А вот программы на языке программирования MatLab сохраняются в виде текстовых файлов (m - файлов). При этом могут сохраняться как целые программы в виде файлов-программ, так и отдельные программные модули — функции. Кроме того, важно, что программа может менять структуру алгоритмов вычислений в зависимости от входных данных и данных, создаваемых в ходе вычислений.

С позиций программиста язык программирования системы является типичным проблемно-ориентированнымязыком программирования высокого уровня. Точнее говоря, это даже язык сверхвысокого уровня, содержащий сложные операторы и функции, реализация которых на обычных языках (например, Бейсике, Паскале илиС++) потребовала бы много усилий и времени. К таким функциям относятся матричные функции, функции быстрого преобразования Фурье и др., а к операторам – операторы построения разнообразных графиков, генерации матриц определенного вида.

Итак, программами в системе MatLab являются программы, оформленные как m - файлы текстового формата, содержащие запись программ в виде программных кодов. Язык программирования системы MatLab имеет следующие средства:

 

 

· данные различного типа;

· константы и переменные;

· операторы, включая операторы математических выражений;

· встроенные команды и функции;

· функции пользователя;

· управляющие структуры;

· системные операторы и функции;

· средства расширения языка.

 

Тексты программ в системе MatLab пишутся на языке высокого уровня, достаточно понятном для пользователей умеренной квалификации в области программирования. Язык программирования MatLab является типичным интерпретатором.

Интерпретация означает, что MatLab не создает исполняемых конечных программ. Они существуют лишь в виде m - файлов, для выполнения, которых необходима среда MatLab. Однако для программ на языке MatLab созданы компиляторы, транслирующие программы MatLab в коды языков программирования С и C++. Это решает задачу создания исполняемых программ, первоначально разрабатываемых в среде MatLab. Компиляторы для системы MatLab являются вполне самостоятельными программными средствами.

Начальное представление о переменных, встроенных константах и функциях уже было дано в предшествующих главах.

В MatLab определены следующие основные типы данных, в общем случае представляющих собой многомерные массивы:

· single — числовые массивы с числами одинарной точности;

· doubl e — числовые массивы с числами удвоенной точности;

· char — строчные массивы с элементами-символами;

· sparse — наследует свойства double, разреженные матрицы с элементами-числами удвоенной точности;

· сеll — массивы ячеек; ячейки, в свою очередь, тоже могут быть массивами;

· struct — массивы структур с полями, которые также могут содержать массивы;

· function_handle — дескрипторы функций:

· int32, uint32 — массивы 32-разрядных чисел со знаком и без знаков;

· int16,uint16 — массивы 16-разрядных целых чисел со знаком и без знаков;

· int8, uint8 — массивы 8-разрядных целых чисел со знаками и без знаков.

 

Каждому типу данных можно соотнести некоторые характерные для него операции, называемые методами. Поскольку в иерархии типов данных сверху находятся данные типа array, это значит, что все виды данных в MatLab являются массивами.

Язык программирования системы MatLab вобрал в себя почти все средства, необходимые для реализации различных технологий программирования:

· процедурного;

· операторного;

· функционального;

· логического;

· структурного (модульного);

· объектно-ориентированного;

· визуально-ориентированного.

 

В основе процедурной, операторной и функциональной технологии программирования лежат процедуры, операторы и функции, используемые как основные объекты языка. Эти типы объектов присутствуют в MatLab. Логическое программирование реализуется в MatLab с помощью логических операторов и функций.

Наиболее ярко в MatLab представлены идеи структурного программирования. Подавляющее большинство функций и команд языка представляют собой вполне законченные модули, обмен данными между которыми происходит через их входные параметры, хотя возможен обмен информацией и через глобальные переменные. Программные модули оформлены в виде текстовых m - файлов, которые хранятся на диске и подключаются к программам по мере необходимости. Важно отметить, что в отличие от многих языков программирования, применение тех или иных модулей не требует предварительного объявления, а для создания и отладки самостоятельных модулей MatLab имеет все необходимые средства. Подавляющее большинство команд и функций системы MatLab поставляется в виде таких модулей.

Объектно-ориентированное программирование также широко представлено в системе MatLab. Оно особенно актуально при программировании задач графики. Что качается визуально-ориентированного программирования, то в MatLab оно представлено в основном в пакете моделирования заданных блоками устройств и систем Simulink.

Здесь необходимо отметить, что для языка системы MatLab различие между командами (выполняемыми при вводе с клавиатуры) и программными операторами (выполняемыми из программы) является условным. И команды, и программные операторы могут выполняться как из программы, так и в режиме прямых вычислений.

В общем виде функция преобразует одни данные в другие. Для многих функций характерен возврат значений в ответ на обращение к ним с указанием списка входных параметроваргументов. Например, говорят, что функция sin(x) в ответ на обращение к ней возвращает значение синуса аргумента х. Поэтому функцию можно использовать в арифметических выражениях, например 2*sin(x+1). Для операторов (и команд), не возвращающих значения, такое применение обычно абсурдно.

Важным фактором является двойственность операторов и функций. Многие операторы имеют свои аналоги в виде функций. Так, например, оператор «+» имеет аналог в виде функции sum(). Команды, записанные в виде Commandargument нередко имеют форму записи и в виде функции Command(' argument').

Указанная двойственность лежит в основе выбора между процедурным и функциональным подходами к программированию, каждый из которых имеет своих поклонников и противников и может (в той или иной мере) подходить для решения различных классов задач. При этом переход от одного подхода программирования к другому возможен в пределах одной программы и происходит настолько естественно, что большинство пользователей даже не задумывается над тем, каким же подходом (или стилем) программирования они преимущественно пользуются.

Имеющиеся в языке MatLab управляющие структуры: условных операторы if... else...elseif...end, case, циклы for...end и while...end, похожи на те, которые используются в языках Бейсик, ПаскальиС+ +.

Программирование простых задач в среде MatLab очень напоминает программирование на языке Bаsic. Во многих случаях программы на языкеBаsic можно почти дословно перевести на язык системы, учтя небольшие отличия в синтаксисе этих языков.

 

m-файлы, программ и функций

Итак, мы установили, что работа в командном режиме (сессия) не является программированием. Внешним атрибутом последнего в MatLab служит задание последовательности действий по программе, записанной в виде m - файла. Для создания m - файлов может использоваться как редактор, встроенный в MatLab, так и любой текстовый редактор. Подготовленный и записанный на диск m - файл с соответствующим именем становится частью системы, и его можно вызывать как из командной строки, так и из другого m -файла. Имеется два типа m -файлов: файлы-программы и файлы-функции. Важно, что в процессе своего создания они проходят синтаксический контроль с помощью встроенного в систему MatLab редактора/отладчикаm - файлов.

Файл - программа, именуемый также Script-файлом, является просто записью последовательности команд без входных и выходных параметров. Он имеет следующую структуру:

-Имя_файла
% Основной комментарий % Дополнительный комментарий Тело файла с любыми выражениями

 

Файлы-программы имеют следующие особенности:

· они не имеют входных и выходных аргументов;

· работают с данными из рабочей области;

· в процессе выполнения не компилируются;

· представляют собой зафиксированную в виде файла последовательность операций, полностью аналогичную той, что используется во время сессии.

 

Основным комментарием является первая строка текстовых комментариев, а дополнительным – последующие строки комментариев. Это связано с тем, что основной комментарий выводится при выполнении команд lookfor и helpимя_каталога. Полный комментарий выводится при выполнении команды help Имя_файла. В качестве примера рассмотрим файл-программу PlotSin и пример вызова ее.

Пример 3.4.1 m-файла
% Построение графика синусоиды линией красного цвета % с масштабной сеткой в интервале [xmin.xmax] x=xmin:0.1:xmax; plot(x,sin(x),е6'r') gridon

 

Пример 3.4-1 сессии
>>xmin=-1; >>xmax=1; >>

 

Первые две строки m -файла Пример 3.4-1 – это комментарий, остальные – тело файла. Знак % в комментариях должен начинаться с первой позиции строки. В противном случае команда help name_файла не будет воспринимать комментарий и возвратит сообщение вида





Поделиться с друзьями:


Дата добавления: 2016-11-24; Мы поможем в написании ваших работ!; просмотров: 484 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Свобода ничего не стоит, если она не включает в себя свободу ошибаться. © Махатма Ганди
==> читать все изречения...

2339 - | 2092 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.113 с.