Рефераты. Система математических расчетов MATLAB

function [x,y,z] = sphere(theta, phi, rho)

Если функция не имеет выходных переменных, оставьте выход пустым, например,

function printresults(x)

или используйте пустые квадратные скобки

function [ ] = printresults(x)

Переменные, которые вы передаете функции не обязательно должны иметь то же имя, что и в линии определения функции.

Строка помощи H1

Строка H1, названная так потому что она является первой строкой текста помощи (Help text), является линией комментария, которая следует непосредственно за строкой определения фу-нкции. Поскольку она состоит из текста комментария, строка H1начинается с символа про-цента (%). Для функции average эта строка имеет вид

% AVERAGE Mean of vector elements.

(СРЕДНЕЕ ЗНАЧЕНИЕ Вычисление среднего значения векторов)

Эта строка является первой строкой текста, который появляется при вводе пользователем в командной строке команды

help function_name

(help имя_функции)

Далее, функция lookfor производит поиск и выводит в командное окно тольку строку H1. Так как данная строка обеспечивает важную обобщающую информацию о М-файле, очень важно сделать ее по возможности более описательной.

Текст помощи

Вы можете создать возможность оперативной помощи (справки) для вашей М-функции , пу-тем ввода одной или большего числа строк комментария, начинающихся непосредственно за строкой H1. Текст помощи для функции average имеет вид

% AVERAGE(X), where X is a vector, is the mean of vector elements.

% Nonvector input results in an error.

(% СРЕДНЕЕ(Х), где Х является вектором, вычисляет среднее значение

%элементов вектора. Не векторный вход приводит к ошибке).

Когда вы вводите help function_name, MATLAB выводит линии комментариев, которые на-ходятся между строкой определения функции и первой строкой не комментариев (выполня-емой или пустой строкой). MATLAB игнорирует любые линии комментариев, которые появ-ляются за данным блоком текста помощи. Например, напечатав help sin получим

SIN Sine.

SIN(X) is the sine of the elements of X.

(SIN(X) является синусом элементов массива Х)

Тело функции

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

ции average содержит нескольких простых программных выражений:

[m,n] = size(x);

if (~((m == 1) | (n == 1)) | (m == 1 & n == 1)) % Flow control

error('Input must be a vector') % Error message display

end

y = sum(x)/length(x); % Computation and assignment

Комментарии

Как было указано ранее, строки комментариев начинаются с символа процента (%). Строки комментариев могут быть в любом месте М-файла, а также вы можете добавить коммента-рии к концу строки кодов программы. Например,

% Add up all the vector elements.

y = sum(x) % Use the sum function.

( % Суммирование всех элементов вектора.

y = sum(x) % Используйте функцию sum)

Первая строка комментариев, следующая непосредственно за строкой определения функции рассматривается как строка H1 данной функции. Строка H1 и любые строки комментариев, непосредственно следующие за Н1, составляют запись оперативной помощи для данного файла. В дополнение к строкам комментариев, вы можете вводить пустые строки в любом месте М-файла. Пустые строки игнорируются. С другой стороны, пустая строка может обозначать конец текста помощи.

Имена функций

Имена функций в MATLAB-е имеют те же ограничения, что и имена переменных. MATLAB использует первые 32 символа имени. Имена функций должны начинаться с буквы; осталь-ные знаки могут быть любой комбинацией букв, цифр и символов подчеркивания. Некото-рые операционные системы могут вводить свои ограничения на длину имен функций.

Название текстового файла, который содержит функцию MATLAB-а, состоит из имени фун-кции с добавленны расширением .m . Например, average.m. Если имя файла и имя функции в ее строке определения отличаются, то внутреннее имя игнорируется.

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

Как работает функция

Вы можете вызвать М-функцию как из командной строки MATLAB-а, так и из другого М-файла. Убедитесь, что вы включили все необходимые аргументы, заключив входные аргу-менты в обычные скобки, а выходные - в квадратные.

Определение имени функции

Когда MATLAB сталкивается с новым именем, он осуществляет следующую последователь-ность шагов:

1. Проверяет, не является ли имя переменной.

2. Проверяет, не является ли имя подпрограммой (subfunction), то есть функцией MATLAB-а, которая находится в пределах того же М-файла, что и вызываемая функ-ция.

3. Проверяет, не является ли имя частной функцией (private function), то есть функцией, которая находится в специальной директории под названием Private (private directo-ry) , то есть директории доступной только для М-файлов в пределах той же директо-рии где она сама находится.

4. Проверяет, находится ли данная на пути доступа MATLAB-а. MATLAB обращается к первому встреченному файлу с заданным именем. Если вы дублируете имена функ-ций, MATLAB обращается к первой встреченной на основe приведенной выше проце-дуры.

Что происходит при вызове функцию

Когда вы вызываете М-файл из командной строки или же из пределов другой М-функции, MATLAB осуществляет синтаксический анализ функции и преобразует ее в псевдокод, ко-торый запоминается в памяти. Это исключает необходимость повторного анализа функции при каждом последующем ее вызове в пределах данного сеанса работы. Псевдокод сохраня-ется в памяти до тех пор пока вы не удалите его с помощью команды clear, или пока вы не выйдете из MATLAB-а.

В приведенной ниже таблице даны основные варианты применения комнды clear для удаления любых функций из рабочего пространства MATLAB-а.

Синтаксис

Описание

clear function_name

Удаляет заданную функцию из рабочего пространства

clear functions

Удаляет все скомпилированные М-функции

clear all

Удаляет все переменные и функции

Создание P-кодов файлов

Вы можете запомнить предварительно скомпилированные функции или сценарии, называе-мые псевдокодами (P-code) файлов, для использования их в последующих сеансах работы. Например, команда

pcode average

компилирует функцию average.m и запоминает полученный псевдокод в файле называемом average.p. Это позволяет MATLAB-и исключить операцию компилирования при первом вы-зове функции в каждом сеансе работы. В принципе, MATLAB осуществляет компиляцию ве-сьма быстро, так что запоминание функции в виде псевдокода редко дает большой выигрыш в быстродействии. Единственная ситуация где псевдокод действительно дает ощутимый вы-игрыш во времени, связана с применением сложных Графических Интерфейсов Пользова-теля (GUI) в различных приложениях. В этом случае множество М-файлов должны быть скомпилировано прежде чем GUI станет видимым. Другая ситуация, где использование псе-вдокода является оправданным, имеет место при необходимости сохранить права собствен-ности, то есть когда вы хотите исключить возможность применения вашего алгоритма другими лицами.

Как MATLAB передает аргументы функции

С точки зрения программиста создается впечатление, чтоMATLAB передает функции все ар-гументы в виде их значений. В действительности, однако, MATLAB передает значения толь-ко тех аргументов, которые изменяются данной функцией. Если функция не изменяет соот-ветствующий аргумент, а просто использует его при вычислениях, MATLAB передает аргу-мент в виде ссылки на него (на его расположение в памяти) с целью оптимизации использо-вания памяти.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.