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

 

Команда for

Цикл с командой for обрабатывает оператор или группу опреаторов заранее заданное число раз. Ее синтаксис имеет вид


                                                      for index = start:increment:end

                                                            statements

                                                      end


где index является изменяемым целочисленным индексом с начальным и конечным значе-ниями  start и end и приращением increment. По умолчанию, приращение равно 1, но вы мо-жете задать любое приращение, включая и отрицательное. При положительных индексах, выполнение прекращается когда значение индекса превышает конечное значение end; при отрицательных приращениях выполнение прекращается когда индекс становится меньше конечного значения.

Например, следующий цикл выполняется пять раз.

                                                       for i = 2:6

                                                             x(i) = 2*x (i–1);

                                                       end


Вы можете использовать вложенные циклы с комндой for:


                                                       for i = 1:m

                                                            for j = 1:n

                                                                A (i, j) = 1/(i + j – 1) ;

                                                            end

                                                       end

Внимание ! Вы можете зачастую ускорить выполнение кодов в MATLAB-е путем замены циклов с for и while векторизованными кодами (см. ниже).

Использование в качестве индексов массивов

Индексы команды for могут быть массивом значений. Например, рассмотрим массив А раз-мера m х n . Выражение


                                                        for i = A

                                                              statements

                                                        end

приравнивает индекс I вектору A(: , k). При первой итерации значение k равно 1; при второй итерации k равно 2 , и так до тех пор, пока  k  не становится равным  n. Иными словами, цикл повторяется n раз, где n  есть число столбцов в A. При этом, при каждой итерации  индекс i является вектром, содержащим один из столбцов матрицы A.

Команда continue

Команда  continue передает управление следующей итерации в циклах for или while, что приводит к перескакиванию через все оставшиеся операторы в теле цикла. В случае вложен-ных циклов, команда continue передает управление к следующей итерации внешних по отно-шению к данному циклу команд for или while , то есть пропускаются только оставшиеся опе-раторы данного внутреннего цикла. Для применения данной команды нужно сформировать соответствующее логическое условие.


 

 

Команда break

Команда break прекращает выполнение циклов, образованных командами for или  while. Ко-гда в теле цикла встречается данная команда, дальнейшее выполнение происходит начиная со следующей строки вне данного цикла. Во вложенных циклах, команда break приводит к выходу только из внутреннего цикла.

Команды try ... catch

Общая форма последовательности команд try ... catch имеет вид


                                                                     try

                                                                         statement,

                                                                         ...,

                                                                         statement,

                                                                     catch,

                                                                          statement,

                                                                          ...,

                                                                           statement,

                                                                     end

В данной последовательности выполняются операторы между командами try и catch до тех пор, пока не происходи какая-либо ошибка вычислений. Тогда управление передается («пе-рехватывается»)  последовательносью операторов между командами catch и end. Для того чтобы узнать причину, приведшую к ошибке, можно воспользоваться комндой lasterr (пос-ледняя ошибка). Если ошибка случается между командами catch и end, то MATLAB  прек-ращает вычисления, если только между предыдущими командами catch и end не установле-на другая последовательность команд try ... catch.

Команда return

Команда return прекращает выполнение текущей последвательности команд и возвращает управление в вызывающую функцию (то есть «родительскую» функцию, из которой была вызвана текущая функция) или же возвращает управление к клавиатуре. Команда return так-же приводит к окончанию режима keyboard (последняя команда, когда встречается в теле программы, передает управление клавиатуре; она часто используется при отладке програм-мы). При обычных условиях  работы вызванная функция передает управление в вызываю-щую функцию когда первая выполнена полностью, то есть до конца. Команда return может быть включена в тело вызываемой функции для того чтобы прекратить ее исполнение при выполнении определенных условий.

Подфункции

М-функции могут содержать коды более чем одной функции. Первая функция в файле являе-тся главной функцией (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, 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 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.