бесплатные рефераты

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

Вы можете использовать вложенные циклы с комндой 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)

12. matlab\sparfun - Разреженные матрицы

13. matlab\graph2d - Двумерная графика

14. matlab\graph3d - Трехмерная графика

15. matlab\specgraph - Специальная графика

16. matlab\graphics - Дескрипторная графика (Handle Graphics)

17. matlab\uitools - Инструменты графического интерфейса пользователя

(Graphical User Interface (GUI))

18. matlab\strfun - Функции обработки символьных строк

19. matlab\iofun - Функции ввода/вывода

20. matlab\timefun - Функции времени и даты

21. matlab\datatypes - Типы данных и структуры

22. matlab\verctrl - Выбор версии

23. matlab\winfun - Интерфейс с операционной системой Windows (DDE/ActiveX)

24. matlab\demos - Демонстрации и примеры возможностей системы MATLAB

25. toolbox\local - Выбор характеристик (Preferences)

26. simulink\simulink - Система моделирования Simulink

27. simulink\blocks - Библиотека блоков (моделей) Simulink

28. simulink\simdemos - Демонстрация и примеры системы Simulink 4

29. simdemos\aerospace - Simulink: Демонстрация и примеры космических моделей

30. simdemos\automotive - Simulink: Демонстрация моделей САУ

31. simdemos\simfeatures - Simulink: Демонстрация основных свойств

32. simdemos\simgeneral - Simulink: Демонстрация примеров общих моделей

33. simdemos\simnew - Simulink: Демонстрация новых свойств

34. simulink\dee - Редактор дифференциальных уравнений

35. stateflow\stateflow - Система моделирования событий Stateflow

36. stateflow\sfdemos - Демонстрации возможностей и примеры Stateflow

37. stateflow\coder - Кодирующее устройство системы Stateflow

38. rtw\rtw - Моделирование систем реального времени Real-Time Workshop

39. rtw\rtwdemos - Демонстрация возможностей системы Real-Time Workshop

40. cdma\cdma - Библиотека моделей системы Simulink для систем

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

41. cdma\cdmamasks - Функции поддержки моделей CDMA

42. cdma\cdmamex - S-функции (S-Functions) системы CDMA

43. cdma\cdmademos - Демонстрации и примеры системы CDMA

44. commblks\commblks - Библиотека моделей устройств связи и коммуникации

(Communications Blockset)

45. commblks\commmasks - Функции поддержки моделей Communications Blockset

46. commblks\commmex - S-функции библиотеки Communications Blockset

47. commblks\commblksdemos - Демонстрации библиотеки Communications Blockset

48. comm\comm - Системы связи и коммуникации (Communications Toolbox)

49. comm\commdemos- Демонстрация возможностей пакета Communications Toolbox

50. control\control - Системы управления (Control System Toolbox)

51. control\ctrldemos - Демонстрации возможностей Control System Toolbox

52. dspblks\dspblks - Библиотека для цифровой обработки сигналов (DSP Blockset)

53. dspblks\dspmasks - Функции поддержки моделей DSP Blockset

54. dspblks\dspmex - S-функции и МЕХ-файлы библиотеки DSP Blockset

55. dspblks\dspdemos - Демонстрации и примеры библиотеки DSP Blockset

56. daq\daq - Сбор данных в режиме реального времени (Data Acquisition Toolbox)

57. daq\daqdemos - Демонстрации и примеры пакета Data Acquisition Toolbox

58. database\database - Работа с базами данных (Database Toolbox)

59. database\dbdemos - Демонстрации возможностей пакета Database Toolbox

60. datafeed\datafeed - Пакет сбора финансовой информации (Datafeed Toolbox)

61. toolbox\dials - Интерфейс поддержки моделей Simulink ( Dials & Gauges

Blockset)

62. filterdesign\filterdesign - Проектирование фильтров (Filter Design Toolbox)

63. ffilterdesign\filtdesdemos - Демонстрации пакета Filter Design Toolbox

64. finderiv\finderiv - Расширение возможностей пакета Financial Toolbox

(Financial Derivatives Toolbox)

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

Toolbox)

66. finance\finance - Финансы (Financial Toolbox)

67. finance\calendar - Функции времени и даты пакета Financial Toolbox

68. finance\findemos - Демонстрации возможностей пакета Financial Toolbox

69. toolbox\fixpoint - Библиотека для моделирования с конечной разрядностью

(Fixed-Point Blockset)

70. fixpoint\fxpdemos - Демонстрации библиотеки Fixed-Point Blockset

71. fuzzy\fuzzy - Размытые множества (Fuzzy Logic Toolbox)

72. fuzzy\fuzdemos - Демонстрации возможностей пакета Fuzzy Logic Toolbox

73. images\images - Обработка изображений (Image Processing Toolbox)

74. images\imdemos - Демонстрации и примеры пакета Image Processing Toolbox

75. instrument\instrument - Связь (поддержка интерфейса с аппаратурой пользователя)

(Instrument Control Toolbox)

76. lmi\lmictrl Приложения пакета LMI Control Toolbox в управлении

77. lmi\lmilab - Синтез систем управления на основе линейных матричных

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

78. toolbox\compiler - Компилятор системы MATLAB (MATLAB Compiler)

79. map\map - Картография (Mapping Toolbox)

80. mpc\mpccmds - Системы управления с эталонной моделью (Model Predictive

Control Toolbox)

81. mpc\mpcdemos - Демонстрации пакета Model Predictive Control Toolbox

82. mutools\commands - м-анализ и синтез систем управления (Mu-Analysis and

Synthesis Toolbox)

83. nnet\nnet - Нейронные сети (Neural Network Toolbox)

84. nnet\nndemos - Демонстрации возможностей пакета Neural Network

85. toolbox\ncd - Проектирование нелинейных систем управления (Nonlinear

Control Design Blockset)

86. toolbox\optim - Оптимизация (Optimization Toolbox)

87. toolbox\pde - Дифференциальные уравнения в частных производных и метод

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

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

Blockset)

89. powersys\powerdemo - Демонстрации моделей Power System Blockset

90. targets\ecoder - Создание пользовательских программ на основе моделей

Simulink (Real-Time Workshop Embedded Coder)

91. toolbox\robust - Синтез робастных систем управления (Robust Control Toolbox)

92. signal\signal - Обработка сигналов (Signal Processing Toolbox)

93. signal\sigdemos - Демонстрации возможностей пакета Signal Processing Toolbox

94. toolbox\splines - Сплайн-аппроксимация (Spline Toolbox)

95. toolbox\stats - Статистика (Statistics Toolbox)

96. toolbox\symbolic - Символьная математика (Symbolic Math Toolbox)

97. ident\ident - Идентификация параметров систем управления (System

Identification Toolbox)

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

Toolbox)

99. wavelet\wavedemo - Демонстрация возможностей пакета Wavelet Toolbox

100. xpc\xpc - Пакет макетирования и контроля систем реального

времени (xPC Target)

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

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

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

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

Общая информация (General information)

1. help - Оперативная справка, выводит текст в командную строку.

2. helpwin - Оперативная справка, выводит информацию в специальном окне (help

browser).

3. helpdesk - Исчерпывающая информация в рабочем окне помощи.

4. support - Открывает Web-страницу технической помощи фирмы MathWorks.

5. demo - Выполняет демонстрационные ролики.

6. java - Использование средств Java из MATLAB-а.

7. ver - Информация о версиях MATLAB-а, SIMULINK-а и прикладных пакетов.

8. whatsnew - Вызов информации о новых свойствах версий.

Управление рабочим пространством ( Managing the workspace)

9. who - Выводит в командное окно список текущих переменных.

10. whos - Выводит в командное окно список текущих переменных в длинном

формате, с указанием размеров, числа байтов и классов.

11. workspace - Вызывает Окно Просмотра Рабочего Пространства (Workspace

Browser), т.е.специальный Графический Интерфейс Пользователя (GUI)

для выполнения действий с переменными рабочего пространства.

12. clear - Удаляет переменные и функции из памяти.

13. pack - Дефрагментация рабочей области памяти.

14. load - Загрузка переменных в рабочее пространство из диска.

15. save - Сохранение переменных рабочего пространства на диск.

16. quit - Прекращение сеанса работы системы MATLAB.

Управляющие команды и функции (Managing commands and functions)

17. what - Выводит список файлов MATLAB-а в текущей директории в

командное окно.

18. type - Печатает содержимое заданного М.-файла в командном окне.

19. edit - Вызывает окно Редактора/Отладчика.

20. open - Открывает файлы по расширению.

21. which - Локализирует (выводит в командное окно) путь доступа к

функциям и файлам.

22. pcode - Создает Р-файл псевдокода с выполнением грамматического анализа.

23. inmem - Выводит список функций в памяти.

24. mex - Компилирует МЕХ-файлы.

Управление путями доступа (Managing the search path)

25. path - Вывод/изменение путей доступа.

26. addpath - Прибавляет директорию к путям доступа.

27. rmpath - Удаляет директорию из путей доступа .

28. pathtool - Модифицирует пути доступа.

29. rehash - Управление кеш-памятью.

30. import - Импортирование пакетов Java в текущую область.

Управление командным окном (Controlling the command window)

31. echo - Вывод в командное окно исполняемых в М-файлах команд.

32. more - Управление постраничным выводом информации на экран.

33. diary - Сохранение записи (дневника) сеанса работы системы MATLAB .

34. format - Контроль формата вывода данных на экран.

35. beep - Производит звуковой сигнал (beep).

Команды операционной системы (Operating system commands)

36. cd - Изменить текущей директории.

37. copyfile - Копировать файла.

38. pwd - Показать (напечатать) текущую рабочую директорию.

39. dir - Вывод на экран листинга каталога.

40. delete - Удалить файл.

41. getenv - Получение значения переменной из внешней операционной среды.

42. mkdir - Создать директорию.

43. ! - Выполнить команды операционной системы.

44. dos - Выполнить команду DOS и вернуть результат.

45. unix - Выполнить команду UNIX и вернуть результат.

46. vms - Выполнить команду VMS DCL и вернуть результат.

47. web - Вызвать Web browser.

48. computer - Выдать тип компьютера.

49. isunix - Истинно, если установлена UNIX-версия MATLAB-а.

50. ispc - Истинно, если установлена PC (Windows)-версия MATLAB-а.

Отладка М-файлов ( Debugging M-files)

51. debug - Вывести список команд отладки и редактирования файлов.

52. dbstop - Установить точку останова (контральнуюточку).

53. dbclear - Удалить контрольную точку.

54. dbcont - Продолжить выполнение.

55. dbdown - Переход между рабочими пространствами редактируемых функций

сверху вниз.

56. dbstack - Вывести в командное окно стек вызываемых функций.

57. dbstatus - Вывести список всех контрольных точек.

58. dbstep - Выполнить одну или более строк.

59. dbtype - Напечатать в командном окне редактируемый файл с указанием

номеров строк.

60. dbup - Переход между рабочими пространствами редактируемых функций

снизу вверх.

61. dbquit - Выход из режима отладки.

62. dbmex - Отладка MEX-файлов (только для системы UNIX).

Профилировщик М-файлов (Profiling M-files)

63. profile - Измерить и вывести на экран временные затраты при выполнении файла

64. profreport - Сформировать отчет о профилировании файла.

Функции для определения местонахождения зависимых функций М-файла (Tools to locate dependent functions of an M-file).

65. depfun - Определить местонахождение функций, от которых зависит М-файл.

66. depdir - Определить местонахождение директории, гдерасположены функции,

от которых зависит М-файл.

67. inmem - Вывести в командное окно список функций в памяти.

Приложение 3. Операторы и специальные символы

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

Арифметические операторы (Arithmetic operators)

1. plus - Plus + - Сложение.

2. uplus - Unary plus + - Унарное сложение.

3. minus - Minus - - Вычитание.

4. uminus - Unary minus - - Унарное вычитание.

5. mtimes - Matrix multiply * - Умножение матриц.

6. times - Array multiply .* - Умножение массивов.

7. mpower - Matrix power ^ - Возведение в степень матриц .

8. power - Array power .^ - Возведение в степень массивов.

9. mldivide - Left matrix divide \ - Левое деление матриц.

10. mrdivide - Right matrix divide / - Правое деление матриц.

11. ldivide - Left array divide .\ - Левое деление массивов.

12. rdivide - Right array divide ./ - Правое деление массивов.

13. kron - Kronecker tensor product - Кронекеровское произведение.

Операторы отношения (Relational operators)

14. eq - Equal ==

15. ne - Not equal ~=

16. lt - Less than <

17. gt - Greater than >

18. le - Less than or equal <=

19. ge - Greater than or equal >=

Логические операторы (Logical operators)

20. and - Logical AND & - Логическое «Да».

21. or - Logical OR | - Логическое «Или».

22. not - Logical NOT ~ - Логическое «Нет».

23. xor - Logical EXCLUSIVE OR - Логическое исключающее «Или».

24. any - Истинно, если хоть один из элементов вектора не равен нулю.

25. all - Истинно, если все элементы вектора не равны нулю.

Специальные символы (Special characters.)

26. colon - : - Двоеточие.

27. paren - ( ) - Круглые скобки и индексация.

28. paren - [ ] - Квадратные скобки.

29. paren - { } - Фигурные скобки и индексация.

30. punct - @ - Создание дескриптора функций.

31. punct - . - Десятичная точка.

32. punct - . - Доступ к полю структуры.

33. punct - .. - Родительская директория.

34. punct - ... - Продолжение.

35. punct - , - Разделитель.

36. punct - ; - Точка с запятой.

37. punct - % - Комментарий.

38. punct - ! - Вызов команды операционной системы.

39. punct - = - Присвоение значений.

40. punct - ' - Кавычка.

41. transpose - .' - Поэлементное транспонирование.

42. ctranspose - ' - Транспонирование и комплексное сопряжение.

43. horzcat - [ , ] - Горизонтальное объединение объектов.

44. vertcat - [ ; ] - Вертикальное объединение объектов.

45. subsasgn - ( ),{ },. - Индексное присвоение.

46. subsref - ( ),{ },. - Индексная ссылка.

47. subsindex - - Индексный дескриптор

Операторы побитовой обработки (Bitwise operators)

48. bitand - Побитовое логическое умножение (Bit-wise AND).

49. bitcmp - Побитовое n-разрядное дополнение.

50. bitor - Побитовое логическое «Или» (Bit-wise OR).

51. bitmax - Максимальное целое число.

52. bitxor - Побитовое логическое исключающее «Или» (Bit-wise XOR).

53. bitset - Установить значение бита.

54. bitget - Получить значение бита.

55. bitshift - Сложение битов по модулю 2.

Операторы обработки множеств (Set operators)

56. union - Объединение множеств.

57. unique - Удаление из множеств одинаковых элементов.

58. intersect - Пересечение множеств.

59. setdiff - Разность множеств.

60. setxor - Операция исключающего «Или» над множествами.

61. ismember - Выявление одинаковых элементов.

Приложение 4. Элементарные математические функции

(Elementary math functions).

Директория matlab\elfun

Тригонометрические функции (Trigonometric)

1. sin - Синус.

2. sinh - Гиперболический синус.

3. asin - Обратный синус.

4. asinh - Обратный гиперболический синус.

5. cos - Косинус.

6. cosh - Гиперболический косинус.

7. acos - Обратный косинус.

8. acosh - Обратный гиперболический косинус.

9. tan - Тангенс.

10. tanh - Гиперболический тангенс.

11. atan - Обратный тангенс.

12. atan2 - 4-х квандрантный обратный тангенс.

13. atanh - Обратный гиперболический тангенс.

14. sec - Секанс.

15. sech - Гиперболический секанс.

16. asec - Обратный секанс.

17. asech - Обратный гиперболический секанс.

18. csc - Косеканс.

19. csch - Гиперболический косеканс.

20. acsc - Обратный косеканс.

21. acsch - Обратный гиперболический косеканс.

22. cot - Котангенс.

23. coth - Гиперболический котангенс.

24. acot - Обратный котангенс.

25. acoth - Обратный гиперболический котангенс.

Экспоненциальные функции (Exponential)

26. exp - Экспоненциальная функция.

27. log - Натуральный логарифм.

28. log10 - Логарифм по основанию 10.

29. log2 - Логарифм по основанию 2 .

30. pow2 - Экспонента по основанию 2.

31. sqrt - Квадратный корень.

32. nextpow2 -Ближайшая степень по основанию 2.

Комплексные числа (Complex)

33. abs - Абсолютное значение числа.

34. angle - Аргумент комплексного числа.

35. complex - Конструирование комплексных данных из действительных и мнимых

частей.

36. conj - Комплексное сопряжение.

37. imag - Мнимая часть комплексного числа.

38. real - Действительная часть комплексного числа.

39. unwrap - Корректировка фазового угла.

40. isreal - Истинно, если массив содержит реальные числа.

41. cplxpair - Сортировка чисел в комплексно-сопряженные пары.

Округление и остатки (Rounding and remainder)

42. fix - Округление в сторону нуля.

43. floor - Округление в сторону минус бесконечность.

44. ceil - Округление в сторону плюс бесконечность

45. round - Округление в сторону ближайшего целого числа.

46. mod - Остаток со знаком после деления (Modulus or signed remainder after

division).

47. rem - Остаток после деления.

48. sign - Функция знака (Signum).

Приложение 5. Элементарные матрицы и операции над ними

(Elementary matrices and matrix manipulation)

Директория matlab\elmat

Элементарные матрицы и векторы (Elementary matrices)

1. zeros - Формирование массива нулей (матрицы из нулей).

2. ones - Формирование массива единиц.

3. eye - Единичная матрица.

4. repmat - Формирование многомерного массива из блоков.

5. rand - Равномерно распределенные случайные числа.

6. randn - Нормально распределенные случайные числа.

7. linspace - Формирование массива равноотстоящих чисел.

8. logspace - Формирование узлов логарифмической сетки.

9. freqspace - Формирование массива частот для частотных откликов.

10. meshgrid - Формирование узлов двумерной и трехмерной сеток (для построения

трехмерных графиков).

11. : - Формирование векторов с равноотстоящими значениями и

индексирование матриц.

Основная информация о массивах (Basic array information)

12. size - Размер массива (матрицы).

13. length - Длина вектора.

14. ndims - Число размерностей массива.

15. disp - Вывод в командное окно матрицы или текста.

16. isempty - Истинно для пустых массивов.

17. isequal - Истинно для одинаковых массивов.

18. isnumeric - Истинно для числовых массивов.

19. islogical - Истинно для логических массивов.

20. logical - Преобразование числовых массивов в логические.

Преобразования матриц (Matrix manipulation)

21. reshape - Преобразование размеров многомерного массива.

22. diag - Диагональные матрицы и диагонали матриц.

23. blkdiag - Блочно-диагональное объединение матриц.

24. tril - Извлечение нижней треугольной части матрицы.

25. triu - Извлечение верхней треугольной части матрицы.

26. fliplr - Зеркальное отображение слева направо.

27. flipud - Зеркальное отображение сверху вних.

28. flipdim - Зеркальное отображение вдоль заданной размерности (обобщенное

транспонирование).

29. rot90 - Поворот матриц на 90 градусов.

30. find - Определение индексов ненулевых элементов массива.

31. end - Последний индекс по указанной размерности.

32. sub2ind - Преобразование многомерной нумерации в последовательную.

33. ind2sub - Преобразование последовательной нумерации в многомерную.

Специальные символы, переменные и константы (Special variables and constants)

34. ans - Результат выполнения последней операции.

35. eps - Точность машинного представления чисел с плавающей запятой.

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

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

38. pi - 3.1415926535897....

39. i, j - Мнимая единица.

40. inf - Бесконечность.

41. NaN - Нечисловое значение.

42. isnan - Истинно для нечисловых значений.

43. isinf - Истинно для бесконечных значений.

44. isfinite - Истинно для конечных значений.

45. why - Выдает ответ в виде набора случайных фраз.

Специальные типы матриц (Specialized matrices)

46. compan - Сопутствующая матрица.

47. gallery - Набор тестовых матриц.

48. hadamard - Матрица Адамара.

49. hankel - Матрица Ганкеля.

50. hilb - Матрица Гильберта.

51. invhilb - Обратная матрица Гильберта.

52. magic - Матрица «Волшебный квадрат».

53. pascal - Матрица Паскаля.

54. rosser - Матрица Рессера (тестовая матрица для классической симметричной

проблемы собственных значений).

55. toeplitz - Матрица Теплица (Toeplitz matrix).

56. vander - Матрица Вандермонда (Vandermonde matrix).

57. wilkinson - Матрица Уилкинсона (тестовая матрица Уилкинсона (Wilkinson) для

задачи на собственные значения.

Приложение 6. - Матричные функции и линейная алгебра

(Matrix functions - numerical linear algebra)

Директория matlab\matfun

Матричный анализ (Matrix analysis)

1. norm - Нормы векторов и матриц.

2. normest - Оценка 2-нормы матриц.

3. rank - Ранг матрицы.

4. det - Детерминант матрицы

5. trace - След матрицы (сумма диагональных элементов).

6. null - Нуль- пространство (ядро) матрицы.

7. orth - Ортонормальный базис матрицы.

8. rref - Треугольная форма матрицы (Reduced row echelon form).

9. subspace - Угол между двумя подпространствами.

Линейные уравнения (Linear equations)

10. \ and / - Решение линейных уравнений (см. Приложение 3. Арифметические

операторы)

11. inv - Обратная матрица.

12. rcond - Обратная величина числа обусловленности матрицы ,найденная при по-

мощи вычислителя пакета LAPACK (LAPACK reciprocal condition estimator).

13. cond - Число обусловленности по отношению к обращению матриц.

14. condest - Оценка числа обусловленности 1-нормы матрицы.

15. normest1 - Оценка 1-нормы матрицы.

16. chol - Разложение Холецкого (Cholesky factorization).

17. cholinc - Неполное разложение Холецкого (Incomplete Cholesky factorization).

18. lu - LU-разложение (LU factorization).

19. luinc - Неполное LU-разложение (Incomplete LU factorization).

20. qr - Ортогонально-треугольная декомпозиция.

21. lsqnonneg - Метод наименьших квадратов с неотрицательными ограничениями.

22. pinv - Псевдообратная матрица.

23. lscov - Метод наименьших квадратов в присутствии шумов.

Собственные значения и сингулярные числа (Eigenvalues and singular values)

24. eig - Собственные значения и собственные векторы.

25. svd - Сингулярное разложение матрицы.

26. gsvd - Обобщенное сингулярное разложение матрицы.

27. eigs - Вычисление нескольких собственных значений (с наибольшими

модулями).

28. svds - Вычисление нескольких сингулярных чисел.

29. poly - Характеристический полином матрицы.

30. polyeig - Вычисление собственных значений матричного полинома (Polynomial

eigenvalue problem).

31. condeig - Число обусловленности относительно собственных значений матрицы.

32. hess - Приведение к форме Хессенберга (Hessenberg form).

33. qz - QZ-факторизация (приведение пары матриц к обобщенной форме Шура).

34. schur - Приведение к форме Шура (Schur decomposition).

Вычисление функций от матриц (Matrix functions).

35. expm - Вычисление матричной экспоненты.

36. logm - Вычисление логарифма матрицы.

37. sqrtm - Вычисление квадратного корня матрицы.

38. funm - Вычисление произвольной функции от матрицы.

39. expm1 - Матричная экспонента с использованием разложения Паде.

40. expm2 - Матричная экспонента с использованием разложения в ряд Тейлора.

41. expm3 - Матричная экспонента с использованием собственных значений и

собственных векторов.

Утилиты для процедур факторизации матриц (Factorization utilities)

42. qrdelete - Удалить столбец в QR -разложении.

43. qrinsert - Вставить столбец в QR-разложение.

44. rsf2csf - Преобразование действительной блочно-диагональной формы к

комплексной диагональной форме.

45. cdf2rdf - Преобразование комплексной блочно-диагональной формы к

действительной диагональной форме.

46. balance - Масштабирование матрицы для повышения точности вычисления

собственных значений.

47. planerot - Преобразование Гивенса (плоское вращениеГивенса).

48. cholupdate - Разложение Холецкого модифицированной матрицы.

49. qrupdate - QR -разложение модифицированной матрицы.

Приложение 7. Полиномы и интерполяция (Interpolation and polynomials)

Директория matlab\polyfun

Интерполяция данных (Data interpolation)

1. pchip - Интерполяция кусочным кубическим полиномом Эрмита.

2. interp1 - Одномерная табличная интерполяция.

3. interp1q - Быстрая одномерная табличная интерполяция.

4. interpft - Одномерная интерполяция с использованием быстрого преобразования

Фурье.

5. interp2 - Двумерная табличная интерполяция.

6. interp3 - Трехмерная табличная интерполяция.

7. interpn - Многомерная табличная интерполяция.

8. griddata - Двумерная интерполяция на неравномерной сетке.

9. griddata3 - Трехмерная интерполяция на неравномерной сетке.

10. griddatan - Многомерная интерполяция на неравномерной сетке.

Интерполяция сплайнами (Spline interpolation)

11. spline - Кубическая интерполяция сплайнами.

12. ppval - Оценка кусочно-непрерывных полиномов.

Геометрический анализ (Geometric analysis)

13. delaunay - Построение триангуляционной сетки (Delaunay triangulation).

14. delaunay3 - Трехмерная сотовая сетка Делануа (3-D Delaunay tessellation).

15. delaunayn - Многомерная сотовая сетка Делануа (N-D Delaunay tessellation).

16. dsearch - Поиск ближайшей точки в триангуляции Делануа.

17. dsearchn - Поиск ближайшей точки в многомерной сотовой сетке Делануа.

18. tsearch - Ближайшая точка двумерной триангуляции.

19. tsearchn - Ближайшая точка многомерной триангуляции.

20. convhull - Построение двумерной выпуклой оболочки.

21. convhulln - Построение многомерной выпуклой оболочки.

22. voronoi - Построение диаграммы Вороного.

23. voronoin - Построение многомерной диаграммы Вороного.

24. inpolygon - Истинно для точек области, ограниченной многоугольником.

25. rectint - Площади областей пересечения двух семейств прямоугольников.

26. polyarea - Площадь прямоугольника.

Полиномы (Polynomials)

27. roots - Нахождение корней полиномов.

28. poly - Вычисление характеристического полинома матрицы или определение

полинома с заданными корнями.

29. polyval - Вычисление значений полиномов в заданных точках.

30. polyvalm - Вычисление значений матричного полинома.

31. residue - Разложение на простые дроби (вычисление вычетов).

32. polyfit - Аппроксимация данных полиномом.

33. polyder - Вычисление производных от полиномов.

34. polyint - Аналитическое интегрирование полиномов.

35. conv - Умножение полиномов.

36. deconv - Деление полиномов.

Приложение 8. Анализ данных и преобразование Фурье

(Data analysis and Fourier transforms)

Директория matlab\datafun

Основные операции (Basic operations)

1. max - Определение максимальных элементов массива.

2. min - Определение минимальных элементов массива.

3. mean - Определение средних значений элементов массива.

4. median - Определение медиан (срединных значений).

5. std - Определение стандартных отклонений элементов массива.

6. var - Определение дисперсий элементов массива.

7. sort - Сортировка элементов массива.

8. sortrows - Сортировка строк матриц.

9. sum - Суммирование элементов массива.

10. prod - Произведение элементов массива.

11. hist - Построение гистограммы.

12. histc - Подсчет элементов гистограммы.

13. trapz - Численное интегрирование методом трапеций.

14. cumsum - Куммулятивная сумма элементов массива.

15. cumprod - Куммулятивное произведение элементов массива.

16. cumtrapz - Куммулятивное численное интегрирование методом трапеций.

Конечные разности (Finite differences)

17. diff - Вычисление конечных разностей и приближенное дифференцирование.

18. gradient - Приближенное вычисление градиента функций.

19. del2 - Дискретная аппроксимация дифференциального оператора Лапласа.

Корреляционные соотношения (Correlation)

20. corrcoef - Вычисление коэффициентов корреляции.

21. cov - Вычисление ковариационной матрица.

22. subspace - Вычисление угла между двумя подпространствами.

Фильтрация и свертка (Filtering and convolution)

23. filter - Одномерная цифровая фильтрация.

24. filter2 - Двумерная цифровая фильтрация.

25. conv - Свертка и умножение полиномов.

26. conv2 - Двумерная свертка.

27. convn - N-мерная (многомерная) свертка.

28. deconv - Обращение свертки и деление полиномов.

29. detrend - Удаление линейного тренда.

Преобразование Фурье (Fourier transforms)

30. fft - Дискретное преобразование Фурье.

31. fft2 - Двумерное дискретное преобразование Фурье.

32. fftn - Многомерное дискретное преобразование Фурье.

33. ifft - Обратное дискретное преобразование Фурье.

34. ifft2 - Двумерное обратное дискретное преобразование Фурье.

35. ifftn - Многомерное обратное дискретное преобразование Фурье.

36. fftshift - Перенос нулевой частоты в середину спектра.

37. ifftshift - Аннулирование переноса нулевой частоты в середину спектра.

Приложение 9. Функции обработки символьных строк (Character strings)

Директория matlab\strfun

Общие (General)

1. char - Сформировать массив символов (строку).

2. double - Преобразовать символы строки в числовые коды.

3. cellstr - Преобразовать массив символов в массив ячеек для строк.

4. blanks - Сформировать строку пробелов.

5. deblank - Удалить пробелы в конце строки.

6. eval - Выполнение выражения, записанного в виде строки символов.

Проверка строк (String tests)

7. ischar - Истинно, если это массив символов.

8. iscellstr - Истинно, если это массив ячеек для строк.

9. isletter - Истинно, если это символ (буква) алфавита.

10. isspace - Истинно, если это пробел.

Операции над строками (String operations)

11. strcat - Горизонтальное объединение строк.

12. strvcat - Вертикальное объединение строк.

13. strcmp - Сравнить строки.

14. strncmp - Сравнить первые N символов строк.

15. strcmpi - Сравнить строки игнорируя регистр.

16. strncmpi - Сравнить первые N символов строк игнорируя регистр.

17. findstr - Найти заданную строку в составе другой строки.

18. strjust - Выравнять массив символов.

19. strmatch - Найти все совпадения.

20. strrep - Заменить одну строку другой.

21. strtok - Найти часть строки, ограниченную разделителями (token).

22. upper - Перевести все символы строки в верхний регистр.

23. lower - Перевести все символы строки в нижний регистр.

Преобразования строк (String to number conversion)

24. num2str - Преобразование числа в строку.

25. int2str - Преобразование целых чисел в строку.

26. mat2str - Преобразование матрицы в строку.

27. str2double - Преобразование строки в число удвоенной точности.

28. str2num - Преобразование массива строк в числовой массив.

29. sprintf - Записать форматированные знаки в виде строки.

30. sscanf - Прочитать строку с учетом формата.

Преобразование систем счисления (Base number conversion)

31. hex2num - Преобразовать шестнадцатеричное число в число удвоенной

точности.

32. hex2dec - Преобразовать шестнадцатеричное число в десятичное число.

33. dec2hex - Преобразовать десятичное число в шестнадцатеричное число.

34. bin2dec - Преобразовать двоичную строку в десятичное число.

35. dec2bin - Преобразовать десятичное число в двоичную строку.

36. base2dec - Преобразовать В-строку в десятичное число.

37. dec2base - Преобразовать десятичное число в В-строку.

Справочник по базовым функциям

системы MATLAB

Функция PLOT

Назначение - Двумерный линейных график

Синтаксис - plot(Y)

plot(X1, Y1, ...)

plot(X1, Y1, LineSpec, ...)

plot(..., 'PropertyName', PropertyValue, ...)

h = plot(...)

Описание. Если прямоугольный числовой массив Y является действительным, то функция plot(Y) строит линейные графики столбцов массива Y в зависимости от индексов их элементов. Если Y содержит комплексные числа, то запись plot(Y) эквивалентна записи plot(real(Y), imag(Y)). Во всех остальных случаях, при использовании plot мнимые компо-ненты игнорируются.

Команда plot(X1, Y1, ...), где количество пар массивов может быть произвольным, осуществ-ляет следующие построения.

· Если оба массива одномерные, то строится линейный график функции, где одномер-ный массив X1 соответствует значениям аргумента, а одномерный массив Y1 - зна-чениям функции.

· Если оба массива X1 и Y1 - двумерные (они должны иметь при этом одинаковую размерность), то строятся попарно линейные зависимости столбцов Y1 от соответст-вующих столбцов X1.

· Если массив Y1 двумерный, а массив X1 одномерный, то строятся линейные графики всех столбцов или строк массива Y1 в зависимости от элементов вектора X1. Выбор столбцов или строк массива Y1 здесь определяется размерностью вектора X1, то есть это могут быть и столбцы и строки (если массив Y1 - квадратный, то приоритет отда-ется столбцам)

· Если двумерным является массив X1, а массив Y1 одномерный (то есть вектор), то строятся графики столбцов или строк массива X1 в зависимости от элементов векто-ра Y1 (см. также предыдущий вариант).

Функция plot(X1, Y1, LineSpec,...) осуществляет приведенные выше построения, причем в спецификации линий LineSpec можно указать типы линий, символы маркеров и их цвета. Вы можете комбинировать тройки Xn, Yn, LineSpec с парами Xn, Yn, т.е. задавать специ-фикации LineSpec только для некоторых пар массивов, например: plot(X1, Y1, X2, Y2, LineSpec, X3, Y3).

Функция plot(... , 'PropertyName', PropertyValue,...) устанавливает свойство всех постро-енных линий, указанное строкой 'PropertyName', в соответствие с его значением, заданным в PropertyValue (См. раздел «Примеры» ниже).

h = plot(...) возвращает вектор-столбец всех дескрипторов (handles) построенных на графи-ке линий, по одному дескриптору на каждую линию.

Замечания. Если вы не задаете цвета при построении более чем одной линии, то функция plot циклически выбирает последовательные цвета так, как они указаны в свойстве ColorOrder текущих осей. После того как все цвета, определенные в ColorOrder, будут ис-пользованы, функция plot использует циклически стили линий (line styles) так, как они определены в свойстве LineStyleOrder текущих осей. При этом, после перехода к каждому новому стилю линии, происходит циклический выбор всех определенных цветов. Отметим, что по умолчанию, система MATLAB восстанавливает свойства ColorOrder и LineStyleOrder при каждом новом вызове функции plot. Если вы хотите сохранить введенные вами в данные свойства изменения, то вы должны задать эти изменения как значения по умолчанию. Например, команда

set(0, 'DefaultAxesColorOrder', [0 0 0], 'DefaultAxesLineStyleOrder', '-|-.|--|:')

задает на корневом (экранном) уровне использование только черного цвета при построении линий (свойство ColorOrder), а также использование следующих стилей линий (свойство LineStyleOrder) : сплошная линия (-), штрих-пунктирная линия (-.), штриховая линия (--) и пунктирная линия (:).

Дополнительная информация

* Для получения более обширной информации по заданию стилей и цветов линии см. раз-дел LineSpec.

Примеры

1. Задание цвета и размера маркеров

Помимо цвета и стиля, имеется также возможность задавать и другие графические харак-теристики линий (более подробное описание этих свойств дано в описании функции line):

* LineWidth - задание ширины линии в точках (points), где 1 точка равна 1/72 дюйма.

* MarkerEdgeColor - задание цвета маркера или цвета граней маркера для «заполненных» маркеров (кружков, квадратов, ромбов, пентаграмм (пятиугольников), гексаграмм (шести-угольников), и четырех типов треугольников).

* MarkerFaceColor - задание цвета поверхности заполненных маркеров.

* MarkerSize - задание размера маркера в единицах точки.

Например, выражения

x = -pi : pi/10 : pi;

y = tan(sin(x)) - sin(tan(x));

plot(x, y, '--rs', 'LineWidth', 2,...

'MarkerEdgeColor', 'k',...

'MarkerFaceColor', 'g',...

'MarkerSize', 10)

дают следующий график

2. Задание положений меток (Tick-Mark) и указание надписей (Labeling)

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

x = -pi : 0.1 : pi;

y = sin(x);

plot(x, y)

set(gca, 'XTick',-pi : pi/2 : pi)

set(gca, 'XTickLabel',{'-pi', '-pi/2', '0', 'pi/2', 'pi'})

Добавление заголовков, надписей к осям и аннотаций

Добавим теперь надписи к осям и комментарий к точке -pi/4, sin(-pi/4).

Следующие три стандартные команды позволяют ввести надписи к осям x и y, а также общий заголовок к графику

xlabel('-\pi \leq \Theta \leq \pi')

ylabel('sin(\Theta)')

title('Plot of sin(\Theta)')

а команда text дает возможность ввести текстовую информацию в любую выбранную точ-ку координатных осей

text(-pi/4, sin(-pi/4), '\leftarrow sin(-\pi\div4)', 'HorizontalAlignment', 'left')

Изменим также цвет линии на красный, находя сперва дескриптор линии, созданной фун-кцией plot, а затем установив требуемое свойство линии Color property. В том же выраже-нии установим толщину линии LineWidth равной двум точкам

set(findobj(gca, 'Type', 'line', 'Color', [0 0 1]),...

'Color','red',,...

'LineWidth', 2)

См. также функции:

axis, bar, grid, legend, line, LineSpec, loglog, plotyy, semilogx, semilogy, subplot, xlabel,

xlim, ylabel, ylim, zlabel, zlim, stem

См. свойство String функции text , где дается список символов и описывается их приме-нение.

LineSpec

Назначение. Спецификации задания свойств графического объекта линия (Line).

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

· Стиль линии (Line style)

· Толщину линии (Line width)

· Цвет (Color)

· Тип маркера (Marker type)

· Размер маркера (Marker size)

· Цвета поверхности и граней маркера (для заполненных маркеров)

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

Спецификаторы стилей линии

Спецификаторы

Стили линии

?-

Сплошная линия

(по умолчанию)

??--

Штриховая линия

:

Пунктирная линия

?-.

Штрих-пунктирная линия

Спецификаторы маркеров

Спецификаторы

Типы маркеров

+

Знак плюс

o

Кружочек

*

Звездочка

.

Точка

x

Крестик

s

Квадрат

d

Ромб

^

Треугольная стрелка вверх

v

Треугольная стрелка вниз

>

Треугольная стрелка направо

<

Треугольная стрелка налево

p

Пятиугольная звезда (пентаграмма)

h

Шестиугольная звезда (гексаграмма)

Спецификаторы цвета

Спецификатор

Цвет

r

Красный

g

Зеленый

b

Синий

c

Голубой (cyan)

m

Магента (magenta)

y

Желтый

k

Черный

w

Белый

Многие графические функции допускают аргумент LineSpec, который определяет три спецификатора для характеристики линии:

· Стиль линии

· Тип маркера

· Цвет

Например, функция plot(x, y, '-.or') строит график значений y от аргумента x, используя штрих-пунктирную линию (-.); размещает круглые маркеры (o) в точках данных, и окра-шивает как линию, так и маркеры в красный цвет (r). Данные спецификаторы нужно задать (в любом порядке) как строка символов в кавычках, после записей массивов данных. Если вы задаете в LineSpec только маркеры, но не стиль линии (например, plot(x,y,'d')), MATLAB наносит только маркеры (без линий)

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

· LineWidth - задает ширину линии (в точках, равных 1/72 дюйма)

· MarkerEdgeColor - задает цвет маркера или цвет граней для заполненных маркеров (кружок, квадрат, ромб, пентаграмма, гексаграмма, и четыре треугольника).

· MarkerFaceColor - задает цвет поверхности заполненного маркера

· MarkerSize - задает размер маркера в точках

В дополнение, вы можете задавать графические свойства LineStyle, Color, и Marker вместо использования символьной строки. Это может быть полезным, например, если вы хотите задать цвет, которого нет в приведенном выше списке спецификаторов цвета, при помощи тройки значений RGB. Более подробная информация о возможностях выбора цвета дана в разделе ColorSpec.

Примеры

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

t = 0 : pi/20 : 2*pi;

plot(t, sin(t), '-.r*')

hold on

plot(sin(t - pi/2), '--mo')

plot(sin(t - pi), ':bs')

hold off

Построим еще один график, иллюстрирующий как можно задавать свойства линий.

plot(t, sin(2*t),'-mo',...

'LineWidth', 2,...

'MarkerEdgeColor', 'k',...

'MarkerFaceColor', [0.49 1 0.63],...

'MarkerSize', 12)

См. также функции:

line, plot, patch, set, surface, и свойство LineStyleOrder координатных осей

Array

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9


© 2010 РЕФЕРАТЫ