Use the Help browser Search tab to search the documentation, or
Стр 1 из 2Следующая ⇒ Лабораторная работа № 3 СОЗДАНИЕ И ИСПОЛЬЗОВАНИЕ М-ФАЙЛОВ В СИСТЕМЕ MATLAB
Цель работы. Изучить создание и использование М-файлов в виде М-файлов сценариев и М-файлов функций в системе MATLAB.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Как было показано в предыдущих лабораторных работах, в командном окне системы MATLAB можно выполнять многие вычисления. Возможно, также писать достаточно сложные программы. Но с увеличением программного кода обычно возникает потребность в корректировке программы и ее отладки. Для упрощения и удобства разработки программ в MATLAB могут быть использованы так называемые М-файлы, представляющие собой обычные текстовые файлы с расширением .m. М-файлы бывают двух типов: М-сценарии и М-функции. Выбор М-файла осуществляется из главного меню File, как это показано на рис. 3.1. Рис. 3.1. Список главного меню File
Пока будем использовать Script и Function. В MATLAB имеется встроенный редактор Editor, который можно открыть через главное меню, набрав последовательно File–New–Script (в старых версиях MATLAB – File–New–M-File) или из командного окна с помощью команды edit. Например, после обращения к команде edit появится окно, показанное на рис. 3.2.
По умолчанию имя М-файла сценария будет соответствовать Untitled.m (потом Untitled2.m, Untitled3.m и так далее). М-файлы в виде М-сценариев содержат последовательность команд программного кода, которые в большинстве случаев могут также быть набраны и в командном окне MATLAB. М-файлы функции (М-функции) представляют собой функции, действие которых похоже на функции языков программирования С/С++ и пр. Они позволяют задавать значения ввода, когда запускаются М-функции из командного окна или из другого М-файла. При этом М-функции могут возвращать значение (и даже несколько значений, в том числе массивов), а могут не возвращать и не принимать никаких данных (аргументов или параметров). Редактор создаваемой М-функции можно открыть через главное меню, набрав последовательно File–New–Function.
В случае работы с М-функциями следует иметь в виду, что область видимости переменных, создаваемых в теле функции, ограничивается только телом самой функции. Переменные, создаваемые в М-функции, являются локальными. Они недоступны из командного окна системы MATLAB и не видимы в других М-файлах. Возможно объявление глобальных переменных с помощью служебного слова global, например, global A B Пример вызова редактора М-функции показано на рис. 3.3.
По умолчанию имя М-функции Untitled. Можно задать свое пользовательское имя, но при этом имя функции должно совпадать с именем М-файла. Например, на рис. 3.4 приведен редактор кода М-функции с именем aza. Эта функция осуществляет сложение трех чисел и возвращает результат сложения. На рис. 3.4 приведен код М-файла aza.m.
В старых версиях MATLAB в М-функции не употреблялось служебное слово end. В новых версиях предусмотрена совместимость со старыми версиями, т. е. в М-функциях можно не использовать end. В случае нескольких возвращаемых значений, они помещаются в квадратные скобки и разделяются запятыми. Пример М-функции, осуществляющий сложение и перемножение трех чисел показан на рис. 3.5.
Пример обращения к созданной М-функции
В созданной М-функции введены комментарии, которые могут быть получены из командного окна MATLAB следующим образом:
М-файлы обеспечивают расширяемость среды MATLAB, позволяют добавлять новые функции (пользовательские функции) к уже существующим функциям MATLAB.
При определении имени М-файла (М-сценария или М-функции) следует иметь в виду, что цифровые имена не должны использоваться, не должны использоваться имена встроенных функций системы MATLAB. Поэтому можно рекомендовать при назначении имени М-файла проверить предварительно его отсутствия в пространстве имен встроенных функций и команд системы MATLAB. Для этого достаточно в командной строке обратиться к справке, т. е. help fun, где fun – задаваемое пользователем имя М-файла. В случае отсутствия подобного имени должно появиться следующее сообщение: Fun not found. Use the Help browser Search tab to search the documentation, or type "help help" for help command options, such as help for methods.
Допустимые имена М-файлов во многом соответствуют допустимым именам переменным. Поэтому для проверки допустимого имени можно использовать функцию isvarname. Например, пусть определены два имени: 9aza и aza9. Обратившись в командном окне к этим именам через функцию isvarname, получим следующие результаты: >> isvarname('9aza') ans = >> isvarname('aza9') ans = Результат 0 означает, что такое имя недопустимо. Соответственно, результат 1 означает, что М-файл или переменную с таким именем допустимо использовать. Обычно не нулевое значение считается как истина, а ноль – ложь. В системе Windows традиционно запрещено использовать следующие символы: \ /: * " < > | Как отмечалось, содержимое (текст) М-сценария может быть создано в любом текстовом редакторе и сохранен с расширением .m. Затем он может быть размещен в текущей директории MATLAB. Вызов созданного М-сценария осуществляется набором его имени без расширения. Это можно сделать в командной строке или в каком-то другом М-файле. При вызове М-сценария MATLAB вызывает команды, содержащиеся в файле в той последовательности, в которой они были расположены при написании М-сценария. Сценарии могут оперировать существующими данными в рабочем пространстве MATLAB или они могут сами создавать эти данные. Все переменные, которые создаются в М-сценарии, и когда к этому сценарию обращаются в командной строке, остаются в рабочем пространстве MATLAB для использования в последующих вычислениях. Переменные, определяемые в командном окне, и переменные, определяемые в сценариях, составляют единое рабочее пространство системы MATLAB. М-сценарии могут также осуществлять графический вывод при использовании соответствующих функций, таких как plot. В М-сценарии в первой строке может находиться комментарий. Комментарий идет после символа %. При вызове справки по созданному М-сценарию будут отображаться первые комментарии. После пробелов последующие комментарии отображаться не будут.
Чтобы увидеть в командном окне содержание (листинг) какого-либо М-файла, то следует применить команду type. Например, если создан М-файл с именем myfile, то его можно просмотреть, набрав в командной строке (или в другом М-файле) следующее: Type myfile Если требуется нумерация строк созданного М-файла, то следует применить команду dbtype. Эти команды могут быть использованы для вывода содержимого М-файлов некоторых стандартных функций системы MATLAB. Например, >> type acoth function y = acoth(z) %ACOTH Inverse hyperbolic cotangent. %ACOTH(X) is the inverse hyperbolic cotangent of the elements of X. % % Class support for input X: % float: double, single % % See also COTH. % Copyright 1984-2004 The MathWorks, Inc. % $Revision: 5.7.4.3 $ $Date: 2004/06/25 18:51:40 $ y = atanh(1./z);
В М-функции выходные параметры (переменные) могут и отсутствовать, также как могут отсутствовать и входные параметры. При этом в определении М-функции ее входные и выходные переменные являются формальными. Фактические, например, входные параметры будут при вызове или обращении к созданной М-функции. Аналогично выходные параметры М-функции после обращения к ней можно обозначать произвольно. Сохранение М-файла как М-функции должно быть с именем, которое указывается в поле заголовка М-функции (имя функции). Имя функции может содержать свыше 30 знаков, причем первый знак должен быть буквой. После заголовка функции могут быть размещены комментарии, начинающиеся с символа процента %.
Тело М-функции состоит из инструкций М-языка, с помощью которых в итоге вычисляются возвращаемые значения. Тело М-функции следует за заголовком функции. Заголовок функции плюс тело функции в совокупности составляют определение М-функции. Если в М-файл поместить определения сразу нескольких функций, то вызывать из командного окна (или из другого М-файла) системы MATLAB возможно будет только ту из них, имя которой совпадает с именем М-файла (внешней М-функции). Каждая М-функция может содержать вторичные М-функции или подфункции, которые могут быть использованы в пределах данного М-файла, но не будут доступны напрямую из командной строки. Здесь имеется аналогия с нисходящим программированием. Часто применяется (главная) М-функция без входных аргументов и возвращаемых значений. Из этой главной М-функции можно будет обращаться к другим М-функциям, которые определены в этом же М-файле. Подфункции можно использовать только в М-функции, но не в М-сценарии. М-функции могут быть с произвольным количеством входных аргументов. М-функции могут возвращать произвольное количество значений.
ПРАКТИЧЕСКАЯ ЧАСТЬ
Пример 1. Считая, что случайный процесс является простейшим Пуассоновским потоком, рассчитать вероятности нахождения в потоке 2, 3, 4 требований на отрезке времени длиной t = 12. В качестве интенсивности потока принять число 1.23. Для решения создать М-сценарий с именем test1.m.
Программный код решения примера
Результат выполнения программы: P0 = 0.0562 P1 = 0.1619 P2 = 0.2329 P3 = 0.2235 P4 = 0.1608 P5 = 0.0926
В программе использована функция нахождения факториала числа – factorial. Если в командном окне набрать help test1, то получим справку о данном М-файле, если в нем имеются комментарии: >> help test1 М-сценарий с именем test1
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|