
- •Matlab r2013a стр. 225
- •Continue Long Statements on Multiple Lines
- •Creating and Concatenating Matrices
- •Overview
- •Constructing a Simple Matrix
- •Entering Signed Numbers
- •Specialized Matrix Functions
- •Examples
- •Concatenating Matrices
- •Keeping Matrices Rectangular
- •Matrix Concatenation Functions
- •Examples
- •Generating a Numeric Sequence
- •The Colon Operator
- •Using the Colon Operator with a Step Value
- •Matrix Indexing
- •Accessing Single Elements
- •Linear Indexing
- •Functions That Control Indexing Style
- •Accessing Multiple Elements
- •Nonconsecutive Elements
- •The end Keyword
- •Specifying All Elements of a Row or Column
- •Using Logicals in Array Indexing
- •Logical Indexing – Example 1
- •Logical Indexing – Example 2
- •Logical Indexing with a Smaller Array
- •Single-Colon Indexing with Different Array Types
- •Indexing on Assignment
- •Arithmetic Operators
- •Arithmetic Operators and Arrays
- •Operator Precedence
- •Precedence of and and or Operators
- •Overriding Default Precedence
- •Relational Operators and Arrays
- •Relational Operators and Empty Arrays
- •Overview of the Logical Class
- •Logical Operators
- •Element-Wise Operators and Functions
- •Short-Circuit Operators
- •Precedence of and and or Operators
- •Symbol Reference
- •Asterisk — *
- •Filename Wildcard
- •Function Handle Constructor
- •Class Folder Designator
- •Line Continuation
- •Dynamic Structure Fields
- •Exclamation Point — !
- •Semicolon — ;
- •Array Row Separator
- •Output Suppression
- •Command or Statement Separator
- •Single Quotes — ' '
- •Square Brackets — [ ]
- •Fundamental matlab Classes
- •More About
- •Overview of Numeric Classes
- •Integers
- •Integer Classes
- •Creating Integer Data
- •Arithmetic Operations on Integer Classes
- •Largest and Smallest Values for Integer Classes
- •Integer Functions
- •Floating-Point Numbers
- •Double-Precision Floating Point
- •Single-Precision Floating Point
- •Creating Floating-Point Data
- •Creating Double-Precision Data
- •Creating Single-Precision Data
- •Arithmetic Operations on Floating-Point Numbers
- •Double-Precision Operations
- •Single-Precision Operations
- •Largest and Smallest Values for Floating-Point Classes
- •Largest and Smallest Double-Precision Values
- •Largest and Smallest Single-Precision Values
- •Accuracy of Floating-Point Data
- •Double-Precision Accuracy
- •Single-Precision Accuracy
- •Avoiding Common Problems with Floating-Point Arithmetic
- •Example 1 — Round-Off or What You Get Is Not What You Expect
- •Example 2 — Catastrophic Cancellation
- •Example 3 — Floating-Point Operations and Linear Algebra
- •Floating-Point Functions
- •Creating a Rectangular Character Array
- •Combining Strings Vertically
- •Combining Strings Horizontally
- •Identifying Characters in a String
- •Working with Space Characters
- •Expanding Character Arrays
- •String Comparisons
- •Comparing Strings for Equality
- •Comparing for Equality Using Operators
- •Categorizing Characters Within a String
- •Create a Structure Array
- •Access Data in a Structure Array
- •Concatenate Structures
- •Generate Field Names from Variables
- •Access Data in Nested Structures
- •Access Elements of a Nonscalar Struct Array
- •Create a Cell Array
- •Access Data in a Cell Array
- •Add Cells to a Cell Array
- •Delete Data from a Cell Array
- •Combine Cell Arrays
- •Pass Contents of Cell Arrays to Functions
- •Multilevel Indexing to Access Parts of Cells
- •Related Examples
- •What Is a Function Handle?
- •Creating a Function Handle
- •Maximum Length of a Function Name
- •The Role of Scope, Precedence, and Overloading When Creating a Function Handle
- •Obtaining Permissions from Class Methods
- •Example
- •Using Function Handles for Anonymous Functions
- •Arrays of Function Handles
- •Calling a Function Using Its Handle
- •Calling Syntax
- •Calling a Function with Multiple Outputs
- •Returning a Handle for Use Outside of a Function File
- •Example — Using Function Handles in Optimization
- •Preserving Data from the Workspace
- •Preserving Data with Anonymous Functions
- •Preserving Data with Nested Functions
- •Loading a Saved Handle to a Nested Function
- •Applications of Function Handles
- •Example of Passing a Function Handle
- •Pass a Function to Another Function
- •Example 1 — Run integral on Varying Functions
- •Example 2 — Run integral on Anonymous Functions
- •Example 3 — Compare integral Results on Different Functions
- •Capture Data Values For Later Use By a Function
- •Example 1 — Constructing a Function Handle that Preserves Its Variables
- •Example 2 — Varying Data Values Stored in a Function Handle
- •Example 3 — You Cannot Vary Data in a Handle to an Anonymous Function
- •Call Functions Outside of Their Normal Scope
- •Save the Handle in a mat-File for Use in a Later matlab Session
- •Parameterizing Functions
- •Overview
- •Parameterizing Using Nested Functions
- •Parameterizing Using Anonymous Functions
- •See Also
- •More About
- •Saving and Loading Function Handles
- •Invalid or Obsolete Function Handles
- •Advanced Operations on Function Handles
- •Examining a Function Handle
- •Converting to and from a String
- •Converting a String to a Function Handle
- •Converting a Function Handle to a String
- •Comparing Function Handles
- •Comparing Handles Constructed from a Named Function
- •Comparing Handles to Anonymous Functions
- •Comparing Handles to Nested Functions
- •Comparing Handles Saved to a mat-File
- •Overview of the Map Data Structure
- •Description of the Map Class
- •Properties of the Map Class
- •Methods of the Map Class
- •Creating a Map Object
- •Constructing an Empty Map Object
- •Constructing An Initialized Map Object
- •Combining Map Objects
- •Examining the Contents of the Map
- •Reading and Writing Using a Key Index
- •Reading From the Map
- •Adding Key/Value Pairs
- •Building a Map with Concatenation
- •Modifying Keys and Values in Map
- •Removing Keys and Values from the Map
- •Modifying Values
- •Modifying Keys
- •Modifying a Copy of the Map
- •Mapping to Different Value Types
- •Mapping to a Structure Array
- •Mapping to a Cell Array
Matlab r2013a стр. 225
Программный пакет (система) MATLABпредназначен для проектирования, моделирования и исследования различных физических, биологических и информационных процессов и объектов.
О роли и значении данного продукта в учебной литературе [1] сказано следующее: "МATLABзанимаетлидирующееместо в области научно-технических вычислений, расчетов и моделирования", "Система фактически стала мировымстандартомв области современного математического и научно-технического программного обеспечения", "В изученииМATLABзаинтересованыинженеры, научные работники, аспиранты, и преподаватели университетов и вузов".
Пакет MATLABсодержит универсальный язык, методологию и средства программирования, оформленные в виде большого количества субпакетов для различных областей знаний - космоса, биотехнологий, автоматики, управления, систем связи, электроники, энергетики, математических операций, баз данных, искусственного интеллекта, мультимедиа, радиотехники, документирования и др. Пакет не русифицирован, поэтому определенное знание английского языка является необходимым условием работы с ним.
Данное пособие использует различные
языки, шрифты, особые символы и цвета.
Так, копируемый из пакета материал
(Paint-отображение)
представлен на английском языке с
установленными по умолчанию шрифтами.
Его вариант в средеMicrosoft
Wordимеет шрифтArialразмером 12 для текста иCourier
New(размер 10) для
выполняемых кодов. Авторские объяснения,
замечания, дополнения и комментарии
даются на русском и английском языках
шрифтамиTimes New
Romanразмером 12 для
текста иCourier New(размер 10) - для программных составляющих.
Синий цвет элементов текста соответствует
пакетнымMATLAB-ссылкам,
оранжевый - заголовкамHelp-страниц,
черный - обычным содержательным частям
текста. Особые фрагменты текста, при
необходимости, выделяются знаками,<, " (начало) и
,
>, " (окончание;) в зависимости от
контекста (символы " в пакете обычно
выделяют цитаты, а <, > - выражения,
заменяемые впоследствии чем-либо;
символы
и
удобны для выделения любых выражений,
особенно тех, которые содержат кавычки,
совпадающие с ограничителями типа ",
или символы, не позволяющие правильно
прочитать текст: +, -, ;, :, = и т.д.). Круглые
скобки, как обычно, в математических
выражениях выделяют приоритетные
операции, а в тексте - комментарии,
дополнения или аналоги. Знак / используется
как делитель в математических выражениях,
как разделитель - в директориях папок,
и как переключатель - в тексте (наример,
и/или). В качестве разделителя в
тематических директориях использован
знак >. Нумерация различных авторских
ЗАМЕЧАНИЙ, ДОПОЛНЕНИЙ и ПРИМЕРОВ
производится только в пределах текущего
рассматриваемого тематического
компонента или аспекта.
Знакомство и изучение пакета следует
начинать с виртуального рабочего стола
Desktop(расположение
его частей и их наполнение зависят от
предыдущих операций с пакетом). Последний
открывается, например, двойным кликом
левой (двойной левый клик или просто
двойной клик) кнопкой мышиMATLAB-ярлыкана инструментальном поле операционной
системы компьютера, если таковой
сформирован после инсталляции пакета
(ниже все оригинальные части пакета
являются их нерабочимиPaint-отображениями):
Desktopсодержит
информационные компоненты (например,Date Modified,Ready), ссылки (например,Getting
Started),
иконки инструментальных разделов (таких
какHOME, PLOTS
и др.) с выпадающими операционными
секциями (типаFile,Variable) при клике (click- одиночное нажатие левой кнопки мыши)
соответствующей кнопки и четыре рабочих
поля:Current Folder
(со списком используемых в данный
момент папок и файлов),Command
History(программное
пространство с символаминачала командной строки и иконкой
браузера процедур-функций),Workspace
(главная системная память с имеющимися
в ней переменными) и Command
History(с набранными
ранее вCommand Window
командами). Количество, расположение
и содержание полей изменяются средствами
окнаDesktop. Строка
показывает родительскую директорию
текущей рабочей папки файлов на полеCurrent Folder
(в тексте знаки
для директорий папок заменяются на /
или \). При необходимости, файлы изCurrent
Folderможно переместить
в другие имеющиеся или вновь организуемые
папки (в том числе в особом списке
директорий-путей с эквивалентными
названиямиMATLABPATH, Path или search
path)
для последующего хранения и использования.
Вся необходимая информация по пакету
находится в Help-справочнике
(Help-браузере),
открываемом, например, кликом операционной
иконкиDesktop-стола:
Вторая сверху (после titlebar)
строка полученной (главной -Home)
Help-страницы
справочника (равно как и для других -
рабочих или текущих -Help-страниц)
содержит инструментальную (
и т.д.) и справочную (в данном случае -
)
составляющие. Последняя часть (может
быть составной) дает заголовки отображаемых
при их клике разделов пакета на текущихHelp-страницах.
Некоторые разделы (здесь Installation,Release NotesиPDF Documentation) текущихHelp-страниц перечислены
в отдельных строках - ниже ()
и выше (
)
основного текста страницы. Это делается
для обособления менее важных материаловHelp-справочника.
Первым разделом (субпакетом) справочника является MATLAB (для различения субпакетаMATLAB от одноименной системыMATLAB последняя обозначается аббревиатурой её серии - R2013a). Клик данного заголовка наHome-странице дает его развертку на очередной (текущей или рабочей) Help-странице:
Продолжение данной Help-страницы (выводится оконным ползунком или колесиком мыши - после клика правого поля страницы) представлено ниже:
Любая текущая Help-страница
(здесь озаглавленная какMATLAB,
см. также аналогичное название на
инструментально-справочной строке)
содержит два поля - дерево тем (Contents),
являющееся оглавлением всего справочника,
и правую (синхронную) часть, содержащую,
в зависимости от обстоятельств, список
разделов, соответствующих выбранному
компоненту на дереве тем, краткие
пояснения и/или основной информативный
текст (последний на показаннойHelp-странице отсутствует).
Дополнительно разделы и подразделы
любого поля могут быть раскрыты кликом
их заголовков и указателей
.
Строка синхронного поля страницы,
начинающаяся с иконки
(символ
главной страницы), является родительской
тематической директорией для представленной
на этом поле теме (в данном случае это
субпакетMATLAB,
имеющий в качестве родительской
директории главную страницу или, что
то же самое, саму систему MATLAB,
представляемую аббревиатуройR2013a).
Строки (в данном случае
и
)
до и после центральной части
синхронного поля указывают на
составляющие, относящиеся к рассматриваемому
тематическому компоненту (здесьMATLAB),
но не содержащиеся в его непосредственнойHelp-расшифровке и
потому являющиеся вспомогательными.
Их как и любые другие (основные) компоненты
синхронного поля можно вызвать обычным
кликом.
Не все тематические элементы одинаково
показаны на двух полях страницы. Например,
заголовок Getting
StartedсинхронногоHelp-поляMATLAB
на дереве тем представлен какGetting
Started
withMATLAB,а подразделSystem Requirements
того же поля отсутствует
в списке Contents;
кроме того, заголовокTutorials разделаGetting
Started
withMATLAB
на дереве тем имеет
инструментразвертки/свертки (/
),
в то время как на синхронном поле этого
элемента нет:
Указанные отличия диктуются различными
причинами (например, короткое название
Getting Startedболее компактно;System
Requirements требует
Интернет-соединения и поэтому не входит
в дерево тем; знак около заголовкаTutorials на синхронном
поле не требуется, так как
данный раздел здесь уже раскрыт) и
легко осознаются в процессе освоения
пакета.
Для ознакомления с основами субпакета
MATLABрассмотрим вначале его разделGetting
Started with
MATLAB,
откуда выберем подразделProduct
Description(ниже с целью увеличения
синхронного информативного пространства
тематическое деревоContentsнаHelp-странице свернуто
кликом знака):
Продолжение страницы Product Description:
После ознакомления в Product
Description
с первичной информацией
по
субпакетам системыMATLAB
перейдем к
анализу их остальных
компонентов, расположенных вслед за
Product
Description.
Для этого на
синхронном поле любого оригиналаHelp-страницы дляProduct
Descriptionкликом указателяв её информационно-справочной строке
следует вернуться к предыдущей, более
общей части субпакета и просмотреть её
оглавление. Для Product
Description раздела
MATLAB
такой частью
является Getting
Started with MATLAB. В
оглавлении последней её очередная
(послеProduct
Description)
составляющая (System
Requirements),
хотя и расположена
на Help-страницеGetting
Started
with
MATLAB,
не входит в структуру тематического
дереваContents, так
как для нее требуется Интернет-соединение.
Поэтому пропустим её и перейдем к анализу
подразделов в частиTutorials
(заголовки черного цвета на синхронных
поляхHelp-страниц
обычно предваряют следующие после них
элементы оглавления, но сами не содержат
какого-либо информационного материала
и поэтому не указываются в родительских
тематических директориях:например,
длявсех подразделов
в Tutorials
для Getting
Started
with
MATLAB
родительская директория
показана одной и той же строкой
,
которая ниже
представляется как
R2013a>MATLAB>Getting
Started
with
MATLAB)темыGetting
Started
with
MATLAB.
As you work in MATLAB, you issue commands that create variables and call functions. For example, create a variable named a by typing this statement at the command line (ниже пример для числового типа данных; символы % в программных кодах предваряют неисполняемые строки, обычно содержащие комментарии; комбинации символов %{ и %} ограничивают блоки неисполняемых строк; если комментарии в учебных целях не планируются для использования в выполняемых программах, для упрощения они могут быть оформлены в любом месте программного кода любым удобным способом без % и %{, %}; для MATLAB-ответов, не являющихся строками рабочих программ, комментарии даются в скобках):
a = 1 % Ниже дается блок комментарий:
%{
Здесь выражение a = 1 (at the command line и в любых программах) является командой присвоения переменной a числового значения 1; операторы =, +, * и подобные им в программных кодах по умолчанию являются символами встроенных MATLAB-функций; здесь по умолчанию
a - переменная value-класса; value-переменные являются именами копий объектов, оригиналы не связаны с их копиями).
%}
MATLAB adds variable a to the workspace and displays the result in the Command Window:
a =
1
ДОПОЛНЕНИЕ.
Предпоследняя строка
a
=
является первой частью MATLAB-ответа,
где a
-
результат выполнения предыдущей
команды; знак равенства
=
в
MATLAB-ответе
является не оператором присвоения, а
обычным математическим символом,
предваряющим вывод значения переменной;
количество
пустых строк перед вычисленным значением
переменной определяется текущим форматом
вывода (здесь по умолчанию); таким
образом, выражение a
= 1
в MATLAB-ответе
не является программным кодом. (Конец
ДОПОЛНЕНИЯ)
Create a few more variables:
b = 2
b =
2
c = a + b % Справа предполагаются последние значения переменных: a = 1, b = 2.
c =
3
d = cos(a) % Имена sin, cos и подобные им, если не используются как переменные, являются встроенными MATLAB-функциями .
d =
0.5403
When you do not specify an output variable, MATLAB uses the variable ans, short for answer, to store the results of your calculation:
sin(a)
ans =
0.8415
If you end a statement with a semicolon, MATLAB performs the computation , but suppresses the display of output in the Command Window (оператор ограничения вывода действителен не для всех команд; например, команда disp('123') при отсутствии и наличии указанного ограничителя выводит один и тот же результат: 123; оператор ограничения вывода не влияет на вывод полученных значений в память Workspace):
e = a*b; % Здесь вывода ответа на экран не предусматривается.
You can recall previous commands by pressing the up- and down-arrow keys, ↑ and ↓. Press the arrow keys either at an empty command line or after you type the first few characters of a command. For example, to recall the command b = 2, type b, and then press the up-arrow key ↑.