Система математических расчетов MATLAB

Методическое пособие - Компьютеры, программирование

Другие методички по предмету Компьютеры, программирование

й.

 

Подфункции

 

М-функции могут содержать коды более чем одной функции. Первая функция в файле являе-тся главной функцией (primary function), которая имеет имя самого М-файла. Дополнитель-ные функции в пределах данного файла являются подфункциями (subfunctions), которые ви-дны (то есть могут быть вызваны) только для главной функции или других подфункций то-го же файла. Каждая подфункция начинается со своей линии определения. Все подфункции следуют непосредственно друг за другом. Порядок следования различных подфункций не имеет никакого значения, при этом главная функция должна быть обязательно записана пер-вой. Например,

 

 

function [avg,med] = newstats(u) % Главная функция

% NEWSTATS Находит среднее значение и медиану при помощи внутренних

% подфункций.

n = length(u);

avg = mean(u,n);

med = median(u,n);

function a = mean(v,n) % Подфункция

% Находит среднее значение.

a = sum(v)/n;

function m = median(v,n) % Подфункция

% Находит медиану.

w = sort(v);

if rem(n,2) == 1

m = w((n+1)/2);

else

m = (w(n/2)+w(n/2+1))/2;

end

 

Подфункции mean и median вычисляют среднее значение и медиану входных данных. Глав-ная функция newstats находит длину входного вектора данных и вызывает подфункции, пе-редавая им данные длины n. Функции в пределах одного и того же файла не имеют общего доступа к каким-либо переменным, если только вы не объявите эти переменные глобальными или же не передадите их в виде аргументов в соответствующие подфункции, как это реализовано в приведенном выше примере. Кроме того, все средства помощи (help) име-ют доступ только к главной функции в М-файле. Когда вы вызываете какую-либо функцию из М-файла, MATLAB прежде всего проверяет, не является ли данная функция подфункци-ей. Затем проверяется, не является ли данная функция частной функцией (private function), описанной в следующем разделе, и далее ищутся стандартные М-файлы на путях доступа

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

 

Частные функции

Частные функции являются функциями, которые находятся в подкаталоге со специальным именем private (частный). Они видны, то есть могут быть вызваны, только из функций в пре-делах родительского каталога. Например, допустим, что каталог newmath находится на пу-тях доступа MATLAB-а. Подкаталог в данной директории newmath, названный private, со-держит только функции, которые могут быть вызваны из каталога newmath. Поскольку ча-стные функции являются невидимыми вне пределов родительского каталога, они могут ис-пользовать имена, совпадающие с именами функций в других каталогах. Это свойство быва-ет полезным, если вы хотите создать свою версию какой-либо конкретной функции, сохраняя в то же время оригинальную функцию в другом каталоге. Так как MATLAB ищет среди част-ных функций прежде чем перейти к поиску в остальных каталогах, он всегда найдет частную функцию, например с именем test.m, раньше чем любую другую М-функцию, названную тем же именем test.m, но расположенную в других каталогах. Вы можете создавать свои частные директории просто путем создания стандартных подкаталогов, названных private. При этом не следует помещать директории private на ваших путях доступа.

 

 

 

 

 

Приложение 1. Тематические направления системы MATLAB

 

 

  1. matlab\general - Команды общего назначения
  2. matlab\ops - Операторы и специальные символы
  3. matlab\lang - Конструкции языка и функции отладки
  4. matlab\elmat - Элементарные матрицы и операции на ними
  5. matlab\elfun - Элементарные математические функции
  6. matlab\specfun - Специальные математические функции
  7. matlab\matfun - Матричные функции и линейная алгебра
  8. matlab\datafun - Анализ данных и преобразование Фурье
  9. matlab\audio - Поддержка звуковых сигналов
  10. matlab\polyfun - Полиномы и интерполяция
  11. matlab\funfun - Нелинейные численные методы и решатели обыкновенных

дифференциальных уравнений (ODE solvers)

  1. matlab\sparfun - Разреженные матрицы
  2. matlab\graph2d - Двумерная графика
  3. matlab\graph3d - Трехмерная графика
  4. matlab\specgraph - Специальная графика
  5. matlab\graphics - Дескрипторная графика (Handle Graphics)
  6. matlab\uitools - Инструменты графического интерфейса пользователя

(Graphical User Interface (GUI))

  1. matlab\strfun - Функции обработки символьных строк
  2. matlab\iofun - Функции ввода/вывода
  3. matlab\timefun - Функции времени и даты
  4. matlab\datatypes - Типы данных и структуры
  5. matlab\verctrl - Выбор версии
  6. matlab\winfun - Интерфейс с операционной системой Windows (DDE/ActiveX)
  7. matlab\demos - Демонстрации и примеры возможностей системы MATLAB
  8. toolbox\local - Выбор характеристик (Preferences)
  9. simulink\simulink - Система моделирования Simulink
  10. simulink\blocks - Библиотека блоков (моделей) Simulink
  11. simulink\simdemos - Демонстрация и примеры системы Simulink 4