Двойственность операторов, команд и функций. Некоторые ограничения.
Для языка системы MATLAB различие между командами (выполняемыми при вводе с клавиатуры) и программными операторами (выполняемыми из программы) является условным. И команды, и программные операторы могут выполняться как из программы, так и в режиме прямых вычислений. Под командами далее в основном понимаются средства, управляющие периферийным оборудованием, под операторами – средства, выполняющие операции с операндами (данными).
Функция преобразует одни данные в другие. Для многих функций характерен возврат значений в ответ на обращение к ним с указанием списка входных параметров – аргументов. Например, говорят, что функция sin(x) в ответ на обращение к ней возвращает значение синуса аргумента х. Поэтому функцию можно использовать в арифметических выражениях, например 2*sin(x+1). Для операторов (и команд), не возвращающих значения, такое применение обычно абсурдно. В данной книге все функции, возвращающие единственное значение (или один массив), записываются малыми (строчными) буквами в виде:
f_name(Список_параметров)
Тем самым мы исключаем искусственное выделение имен функций большими (заглавными) буквами, принятое в справочной системе MATLAB. Напоминаем, что как в командной строке, так и в текстах m-файлов функции записываются только малыми буквами. Для функций, возвращающих ряд значений или массивов (например X, Y, Z,…), запись имеет следующий вид:
[X. Y, Z....]
=
f_name(Список_параметров)
Важное значение имеет двойственность операторов и функций. Многие операторы имеют свои аналоги в виде функций. Так, например, оператор "+" имеет аналог в виде функции sum. Команды, записанные в виде:
Command argument
Нередко имеют форму записи и в виде функции:
Command(
'argument'
)
Примеры:
>
>
help sin SIN Sine.
SIN(X) is the sine of the elements of X.
Overloaded methods
help sym
/
sin.m
>
>
help(
'sin'
) SIN Sine.
SIN(X) is the sine of the elements of X.
Overloaded methods
help sym
/
sin.m
>
>
type(
'sin'
)
sin is a built
-
in function.
>
>
type sin
sin is a built
-
in function.
Указанная двойственность лежит в основе выбора между процедурным и функциональным типами программирования, каждый из которых имеет своих поклонников и противников и может (в той или иной мере) подходить для решения различных классов задач. При этом переход от одного типа программирования к другому возможен в пределах одной программы и происходит настолько естественно, что большинство пользователей даже не задумывается над тем, каким же типом (или стилем) программирования они преимущественно пользуются.
— Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта.
— Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы).
— SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание.
SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение
Некоторые ограничения
Поскольку язык программирования системы MATLAB ориентирован на структурное программирование, в нем нет номеров строк (присущих до недавнего времени Бейсику) и программных операторов безусловного перехода GO TO. Имеются лишь управляющие структуры следующих типов: условных выражений if… else…else…if…end, циклы for…end и while…end. Их форма похожа на ту, которая используется в языке Pascal (т. е. область действия управляющих структур начинается их заголовком, но без слова begin, а заканчивается словом end). С позиций теории структурного программирования этих средств достаточно для решения любых задач. В MATLAB имеются также операторы-переключатели типа case.
Однако в MATLAB исключены те средства, возможности которых можно реализовать уже имеющимися средствами. Зато резко увеличен набор средств программирования для решения математических задач, прежде всего сводящихся к матричным вычислениям и реализации современных численных методов.
Программирование простых задач в среде MATLAB очень напоминает программирование на Бейсике. Во многих случаях программы на Бейсике можно почти дословно перевести на язык системы, учтя небольшие отличия в синтаксисе этих языков. Это нельзя трактовать как отсутствие у языка MATLAB индивидуальных черт. Любители Си, Паскаля или Фортрана также заметят сходство этих языков с языком программирования MATLAB. Так что правильнее считать, что этот язык имеет вполне самостоятельное значение. Он вобрал в себя лучшие средства универсальных языков программирования.