Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Команда while и пустые массивы



Если условие приwhile сводится к пустому массиву, то оно соответствует ложному выраже-нию, то есть последовательность команд

 

While A

S1;

End

 

никогда не выполнит оператор S1 если A есть пустой массив.

Команда 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. 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
  12. simdemos\aerospace - Simulink:Демонстрация и примеры космических моделей
  13. simdemos\automotive - Simulink:Демонстрация моделей САУ
  14. simdemos\simfeatures - Simulink:Демонстрация основных свойств
  15. simdemos\simgeneral - Simulink:Демонстрация примеров общих моделей
  16. simdemos\simnew - Simulink:Демонстрация новых свойств
  17. simulink\dee -Редактор дифференциальных уравнений
  18. stateflow\stateflow -Система моделирования событий Stateflow
  19. stateflow\sfdemos -Демонстрации возможностей и примеры Stateflow
  20. stateflow\coder -Кодирующее устройство системы Stateflow
  21. rtw\rtw -Моделирование систем реального времени Real-Time Workshop
  22. rtw\rtwdemos -Демонстрация возможностей системы Real-Time Workshop
  23. cdma\cdma -Библиотека моделей системы Simulinkдля систем

коммуникации (CDMA Reference Blockset)

  1. cdma\cdmamasks -Функции поддержки моделей CDMA
  2. cdma\cdmamex - S-функции (S-Functions) системыCDMA
  3. cdma\cdmademos -Демонстрации и примеры системы CDMA
  4. commblks\commblks -Библиотека моделей устройств связи и коммуникации

(Communications Blockset)

  1. commblks\commmasks -Функции поддержки моделей Communications Blockset
  2. commblks\commmex - S-функции библиотеки Communications Blockset
  3. commblks\commblksdemos -Демонстрации библиотеки Communications Blockset
  4. comm\comm -Системы связи и коммуникации (Communications Toolbox)
  5. comm\commdemos-Демонстрация возможностей пакета Communications Toolbox
  6. control\control -Системы управления (Control System Toolbox)
  7. control\ctrldemos -Демонстрации возможностей Control System Toolbox
  8. dspblks\dspblks -Библиотека для цифровой обработки сигналов (DSP Blockset)
  9. dspblks\dspmasks -Функции поддержки моделей DSP Blockset
  10. dspblks\dspmex - S-функции и МЕХ-файлыбиблиотеки DSP Blockset
  11. dspblks\dspdemos -Демонстрации и примеры библиотеки DSP Blockset
  12. daq\daq -Сбор данных в режиме реального времени (Data Acquisition Toolbox)
  13. daq\daqdemos -Демонстрации и примеры пакета Data Acquisition Toolbox
  14. database\database -Работа с базами данных (Database Toolbox)
  15. database\dbdemos -Демонстрации возможностей пакета Database Toolbox
  16. datafeed\datafeed -Пакет сбора финансовой информации (Datafeed Toolbox)
  17. toolbox\dials -Интерфейс поддержки моделей Simulink( Dials & Gauges

Blockset)

  1. filterdesign\filterdesign -Проектирование фильтров (Filter Design Toolbox)
  2. ffilterdesign\filtdesdemos –Демонстрации пакета Filter Design Toolbox
  3. finderiv\finderiv -Расширение возможностей пакета Financial Toolbox

(Financial Derivatives Toolbox)

  1. ftseries\ftseries -Временной анализ финансового рынка (Financial Time Series

Toolbox)

  1. finance\finance -Финансы (Financial Toolbox)
  2. finance\calendar -Функции времени и даты пакета Financial Toolbox
  3. finance\findemos -Демонстрации возможностей пакета Financial Toolbox
  4. toolbox\fixpoint -Библиотека для моделирования с конечной разрядностью

(Fixed-Point Blockset)

  1. fixpoint\fxpdemos -Демонстрации библиотеки Fixed-Point Blockset
  2. fuzzy\fuzzy -Размытые множества (Fuzzy Logic Toolbox)
  3. fuzzy\fuzdemos -Демонстрации возможностей пакета Fuzzy Logic Toolbox
  4. images\images -Обработка изображений (Image Processing Toolbox)
  5. images\imdemos -Демонстрации и примеры пакета Image Processing Toolbox
  6. instrument\instrument -Связь (поддержка интерфейса с аппаратурой пользователя)

(Instrument Control Toolbox)

  1. lmi\lmictrlПриложения пакета LMI Control Toolboxв управлении
  2. lmi\lmilab -Синтез систем управления на основе линейных матричных

неравенств(LMI Control Toolbox)

  1. toolbox\compiler -Компиляторсистемы MATLAB(MATLAB Compiler)
  2. map\map -Картография (Mapping Toolbox)
  3. mpc\mpccmds -Системы управления с эталонной моделью (Model Predictive

Control Toolbox)

  1. mpc\mpcdemos -Демонстрации пакета Model Predictive Control Toolbox
  2. mutools\commands - μ-анализ и синтез систем управления (Mu-Analysis and

Synthesis Toolbox)

  1. nnet\nnet -Нейронные сети (Neural Network Toolbox)
  2. nnet\nndemos -Демонстрации возможностей пакетаNeural Network
  3. toolbox\ncd -Проектирование нелинейных систем управления (Nonlinear

Control Design Blockset)

  1. toolbox\optim -Оптимизация (Optimization Toolbox)
  2. toolbox\pde -Дифференциальные уравнения в частных производных и метод

конечных элементов (Partial Differential Equation Toolbox)

  1. powersys\powersys -Моделирование энергетических систем (Power System

Blockset)

  1. powersys\powerdemo -Демонстрации моделей Power System Blockset
  2. targets\ecoder -Создание пользовательских программ на основе моделей

Simulink(Real-Time Workshop Embedded Coder)

  1. toolbox\robust -Синтез робастных систем управления (Robust Control Toolbox)
  2. signal\signal -Обработка сигналов (Signal Processing Toolbox)
  3. signal\sigdemos -Демонстрации возможностей пакета Signal Processing Toolbox
  4. toolbox\splines -Сплайн-аппроксимация (Spline Toolbox)
  5. toolbox\stats -Статистика (Statistics Toolbox)
  6. toolbox\symbolic -Символьная математика (Symbolic Math Toolbox)
  7. ident\ident -Идентификация параметров систем управления (System

Identification Toolbox)

  1. wavelet\wavelet -Импульсная декомпозиция сигналов и изображений (Wavelet

Toolbox)

  1. wavelet\wavedemo -Демонстрация возможностей пакета Wavelet Toolbox
  2. xpc\xpc -Пакет макетирования и контроля систем реального

времени (xPC Target)

  1. xpc\xpcdemos -Демонстрации возможностей пакета xPC Target

Примечание.Нзвание каждого тематического направления определяет соответствую-щую директорию(каталог) системы MATLAB.

Приложение 2. Команды общего назначения (General purpose commands)

Директория - matlab\general

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.