Комментарии. Особенности выполнения m-файлов функций.
Как отмечалось, команда help name, где name – имя m-файла, обеспечивает чтение первой строки с текстовым комментарием и тех строк с комментариями, которые следуют непосредственно за первой строкой. Комментарий, расположенный за пределами этой области, не выводится. Это позволяет создавать невыводимый программный комментарий, например: Z=X+Y ^. Массив Z является суммой массивов X и Y.
Пустая строка прерывает вывод комментария при исполнении команды help name. Команда type name выводит текст программы со всеми комментариями, в том числе и следующими после пустых строк.
Команда help catalog, где catalog – имя каталога с m-файлами, позволяет вывести комментарий, общий для всего каталога. Такой комментарий содержится в файле contents.m, который пользователь может создать самостоятельно с помощью редактора m-файлов. Если такого файла нет, то будет выведен список первых строк комментариев для всех m-файлов каталога.
Особенности выполнения m-файлов функций
М-файлы-функции могут использоваться как в командном режиме, так и вызываться из других M-файлов. При этом необходимо указывать все входные и выходные параметры. Исключением является случай, когда выходной параметр единственный – в этом варианте функция возвращает единственный результат и может использоваться в математических выражениях. При использовании глобальных переменных они должны быть объявлены во всех m-файлах, используемых в решении заданной задачи, и во всех входящих в них встроенных подфункциях.
Имена функций должны быть уникальными. Это связано с тем, что при обнаружении каждого нового имени MATLAB проверяет, относится ли это имя к переменной, подфункции в данном m-файле, частной функции в каталогах PRIVATE или функции в одном из каталогов пути доступа. Если последняя встречается, то будет исполнена именно эта функция. В новой версии MATLAB возможно переопределение функции, но это не рекомендуется делать подавляющему большинству пользователей системы.
Если аргумент функции используется только для вычислений и его значения не меняются, то аргумент передается ссылкой, что уменьшает затраты памяти. В других случаях аргумент передается значением. Для каждой функции выделяется своя (рабочая) область памяти, не входящая в область, предоставляемую системе MATLAB. Глобальные переменные принадлежат ряду областей памяти. При их изменении меняется содержимое всех этих областей.
При решении задач с большим объемом данных может ощущаться нехватка оперативной памяти. Признаком этого становится появление сообщения об ошибке "Out of memory".
В этом случае может быть полезным применение следующих мер:
- стирание ставших ненужными данных, прежде всего больших массивов;
- увеличение размеров файла подкачки Windows;
- уменьшение размера используемых данных;
- снятие ограничений на размеры используемой памяти;
- увеличение объема физической памяти компьютера.
Чем больше емкость ОЗУ компьютера, на котором используется система MATLAB тем меньше вероятность возникновения указанной ошибки. Опыт показывает, что даже при решении задач умеренной сложности емкость ОЗУ не должна быть менее 16-32 Мбайт.