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

                                        testvar ([2  3], [1  5], [4  8], [6 5], [4  2], [2  3])

                                        testvar  ([–1  0], [3  –5], [4  2], [1  1])

Распаковка содержимого функции varargin

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


y(i) = varargin{i} (2);


Индексация ячеек имеет два набора компонент – первый набор указывает ячейку и заключен в фигурные скобки, а второй набор  относится к содержимому ячейки и заключен в обычные скобки. В приведенном выше операторе выражение {i} обозначает обращение к i-ой ячейке в varargin, а выражение (2) представляет второй элемент содержимого выбранной ячейки.


Упаковка выходных переменных в функцию varargout

Когда вы хотите использовать произвольное число выходных аргументов, вы должны преду-смотреть процедуру упаковки выходных переменных в массив ячеек varargout. При этом, для определения конкретного числа вызываемых выходных аргументов используйте функ-цию nargout. Например, приведенный ниже пример принимает входной массив в виде двух столбцов, где первый столбец характеризует набор данных по оси x, а второй столбец – соот-ветствующий набор данных по оси y . Данные наборы разбиваются на отдельные пары  век-торов [xi yi], которые вы можете передать описанной выше функции testvar.


                                     function [varargout] = testvar2 (arrayin)

                                     for i = 1:nargout

                                            varargout {i} = arrayin (i, :)

                                     end


Оператор присваивания в цикле for использует синтаксис индексации массивов ячеек. Вот пример применения функции testvar2:


                                             a = {1  2; 3  4 ; 5  6 ; 7  8; 9  0};

                                            [p1, p2, p3, p4, p5] = testvar2 (a);

Место функций varargin и varargout в списке аргументов

Функции varargin или varargout должны быть последними в списке аргументов, при этом  они могут быть расположены после любого числа входных или выходных переменных. Это значит, что в строке определения функции следует сперва указать требуемые входные или выходные аргументы. Например, следующие строки определения функций показывают правильное применение varargin и varargout.

                                  function [out1,out2] = example1(a,b,varargin)

                                  function [i,j,varargout] = example2(x1,y1,x2,y2,flag)


Локальные и глобальные переменные

Каждая исполняемая функция MATLAB-а, определенная некоторым М-файлом, имеет свои собственные локальные переменные расположенные в своем рабочем пространстве, которые отделены от локальных переменных других функций и переменных в основном рабочем про-странстве. Однако, если несколько функций и, возможно, основное рабочее пространство, объявляют некоторую конкретную переменную глобальной, то все эти функции и основное рабочее пространство будут иметь доступ к данной переменной. Любое изменение глобаль-ной переменной, произведенное в пространстве какой-либо одной функции, немедленно воспринимается всеми остальными функциями, где эта переменная объявлена глобальной. Допустим, вы хотите изучить эффект изменения коэффициентов взаимосвязей a  и   b, в диф-ференциальном уравнении Лотки-Вольтера (Lotka-Volterra), известного как  модель хищника-жертвы.


                                         dy1/dt = y1 - ay1y2

                                         dy2/dt = y2 - by1y2

Создадим М-файл lotka.m.


                                                function yp = lotka(t,y)

                                                global  ALPHA  BETA

                                                yp = [y(1) – ALPHA*y(1)*y(2); –y(2) + BETA*y(1)*y(2)];


Затем введем последовательно в командное окно следующие выражения


                                                global ALPHA BETA

                                               ALPHA = 0.01

                                               BETA = 0.02

                                               [t,y] = ode23('lotka',0,10,[1; 1]);

                                               plot(t,y)

Объявление переменных ALPHA и BETA глобальными в командной строке позволяет ме-нять соответствующие значения внутри функции заданной файлом lotka.m. Интерактивное изменение данных переменных в командном окне приводит к получению новых решений без каких-либо редактирований текста файла.


Для работы в ваших приложениях с глобальными переменными следует:

q       Объявить соответствующую переменную глобальной в каждой функции, где пре-дусмотрено ее использование. Для обеспечения доступа к глобальной переменной из командного окна нужно объявить данную переменную глобальной также и в командной строке.

q       В каждой функции объявите переменную глобальной до первого появления ее имени в тексте файла. Обычно рекомендуется объявлять переменные глобальными в начале М-файла.

Глобальные переменные в MATLAB-е обычно имеет более длинные имена и иногда записы-ваются заглавными буквами.Это не является настоятельным требованием, но упрощает чте-ние файлов и уменьшает риск случайного изменения глобальной переменной.


Перманентные переменные (Persistent Variables)

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

Для работы с перманентными переменными в MATLAB-е предусмотрены три функции:


Функция

Описание

mlock

Исключает возможность удаления М-файла из памяти

munlock

Возвращает М-файлу возможность его удаления из памяти

mislocked

Указывает, может ли М-файл быть удален из памяти



Специальные переменные

Несколько функций возвращают важные специальные значения, которые вы можете исполь-зовать в ваших М-файлах.


Функция

Возвращаемое значение

ans

Последний ответ (переменная). Если вы не присваиваете выходной переменной или вычисляемому выражению какое-либо имя, MATLAB автоматически запоминает результат в переменной ans.

eps

Относительная точность вычислений с плавающей запятой. Это допуск, который MATLAB использует при вычислениях.

realmax

Наибольшее число с плавающей запятой.

realmin

Наименьшее число с плавающей запятой.

pi

3.1415926535897...

i, j

Мнимая единица.

inf

Бесконечность. Вычисления вида n/0 где n – любое ненулевое реально число, дает в результате inf.

NaN

Не численное значение (Not-a-Number). Выражения вида 0/0 и

inf/inf дают в результате NaN, так же как и арифметические операции содержащие NaN. Выражения типа  n/0, где n явля- ется  комплексным числом, также возвращают NaN.


computer

Тип компьютера.

version

Строка, содержащая версию MATLAB-а.


Вот несколько примеров, где используются эти переменные.


                                                                       x = 2*pi;

                                                                       A = [3 + 2i   7 – 8i];

                                                                       tol = 3*eps;

Типы данных

 

Всего в MATLAB –е имеется 14 базовых типов (или классов) даных. Каждый из этих типов данных является формой массива. Этот массив может иметь минимальный размер 0х0 и мо-жет иметь произвольную размерность по любой координате. Двумерные варианты таких массивов называются матрицами.Все 14 базовых класса типов данных показаны на приве-денной ниже  диаграмме. Дополнительно, тип данных, определенных пользователем, пока-занный ниже как user class (класс пользователя), является подмножеством данных типа структуры.

Страницы: 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, 34, 35



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