Lesson10_mail (1063578)
Текст из файла
Написание функций
Написание функций
Увеличение автоматизацииПри увеличении сложности скрипта возникают ситуации, когдаотдельные участки кода повторяются в разных местах. В этом случае оказывается удобно «запаковать» этот участок в отдельный, вспомогательный код, который можно вызвать одной командой. Тогда если необходимо изменение этого блока, то будет достаточно изменить его лишь в одном месте. Создание собственных функций «черный ящик » = – требует определенные типы входных данных, Переменные в функции занимают свое собственное, отдельное рабочее пространство. | |
Создание функцийФункции создаются в текстовых файлах .m (как скрипты). Отличие синтаксиса: файлы начинаются объявлением функции function[out1,out2,…] =function_name (in1,in2,…) Ключевое слово function должно быть первой (не закомментированной) строкой кода. Синтаксис объявления функции (после ключевого слова function) аналогичен синтаксису для вызова функций. Файл принято называть function_name.m. Код, следующий за объявлением функции, описывает вычисление выходных значений на основе входных. Каждая объявленная выходная переменная должна в коде получить значение. Для функций с одним выходным значением квадратные скобки не обязательны. |
| УпражнениеИзмените callmodel.m в функцию, которая принимает параметры модели и возвращает call и t в качестве выходных данных function [call,t] = Fun_CallModel(n,f0,A0,B,fm) >> edit callmidel_fun |
Вызов функциианалогичен вызову встроенных функций MATLAB. Синтаксис вызова определяется объявлением в первой строке кода в файле функции. Например для запуска модели callmodel_fun.m : >> N=4; f0=165; A0=1; B=0.8; fm=1; >> [x,t]=callmodel_fun(N,f0,A0,B,fm); или попросту >> [x,t]=callmodel_fun(4,165,1,0.8,1) Если функция возвращает множество выходных значений, а требуется исключительно значение х на выходе: >> x=callmodel_fun(4,165,1,0.8,1); Если нужно только t, то игнорируем х используя тильду (~): >> [~,t]=callmodel_fun(4,165,1,0.8,1); P.S. если не указана конкретная переменная для выходного значения, то результат будет записан в ans по умолчанию. Если функция возвращает больше одного выходного значения, первое из них будет записано в ans, остальные – проигнорированы. |
| УпражнениеВызов функции с одним набором параметров >> x=callmodel_fun(3,175,2,1.5,0.65); и с другим набором параметров: >> x=callmodel_fun(4,165,1,0.8,1); Note: Сохраняйте все изменения в функции, перед тем, как ее вызвать. |
Рабочие пространстваФункции работают в своем собственном рабочем пространстве, отдельном от основного рабочего пространства, используемого из Command Window или скриптами. Если функция вызывает другую функцию, то каждая поддерживает собственное рабочее пространство. Значения переменных локализованы в индивидуальные рабочие пространства. Отдельные workspaces функций удобны, но могут быть ошибки. С одной стороны все функции могут принимать на вход х и возвращать на выходе у. Переменные внутри функции не конфликтуют с переменными других файлов функций. С другой, могут быть ошибки при отсылке к переменной, которая находится в рабочем пространстве другой функции. В этом случае MATLAB укажет, что переменная не найдена. Передача значений при вызове вида >> a=foo(b) где функция задана следующим образом function y=foo(x) a = sin(x); x=x+1; b=sin(x); y = a*b; | |
Подфункцииприменяют для передачи части задач функции другой функции. При этом эти вспомогательные функции доступны только родительской функции (т.е. друг другу). Файлы функций могут содержать код для нескольких функции. Дополнительные функции внутри файла называют подфункциями. Подфункции видимы только главной функции и другим подфункциям в том же файле. Они не видимы снаружи файла (например, командной строке). Каждая подфункция начинается с собственного объявления функции. Подфункции могут следовать в любом порядке, но главная функция, вызываемая извне файла, должна появиться первой: function[A,B]=primary(x,y) A=subfunction1(x); B=subfunction2(y); function v= subfunction1(u) v=rand(u,1); function v= subfunction2(u) v=randn(u,1); | |
Поддерживают собственные рабочие пространства.
Приоритет вызова>> whale MATLAB выполнит поиск пока не найдет первое упоминание whale для интерпретации команды: 1. Поиск whale в качестве переменной в местном рабочем пространстве. 2. Поиск whale в качестве внутренней функции в том же файле. 3. Поиск whale в качестве подфункции в том же файле. … 7. Поиск в текущей директории файла под названием whale. 8. Прочесывание по порядку путей в поисках файла под названием whale. | УпражнениеПроблема приоритетности: использование наименований файлов в качестве переменных. Which Locate functions and files 1) >> which pi -all >> pi = 2 >> which pi -all >> R = 3 >> pi*R^2 >> clear pi >> which pi -all >> pi*R^2 2) >> sin=pi >> sin(1) 3) >> i=1:5 >> z=1+2*i >> abs(z) >> clear i >> z=1+2*i >> abs(z) | |
Путь в MATLABПуть поиска директорий прописывается для того, чтобы указать где MATLAB осуществляет поиск файлов кода При инсталляции все файлы MATLAB и Toolbox’ов записываются в путь поиска. Если создаются новые связанные с MATLAB файлы, тогда их содержащие директории должны быть помещены в путь поиска Поддиректории должны быть добавлены, даже если их родительская директория уже находится в пути. Установка/редактирование пути GUI Set Path. ToolStrip: закладка Home раздел Environment кнопка Set Path, либо: >> pathtool | |
9-2
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.
Упражнение
Упражнение
Упражнение 













