К классу операторов
в системе MATLAB относятся также
специальные символы.
Они предназначены
для создания самых разнообразных объектов входного языка и языка программирования
системы и придания им различных форм. В табл. 8.4 представлено описание полного
набора специальных символов.
Таблица
8.4.
Специальные символы MATLAB
Обозначение
Название
Категория
:
Двоеточие
colon
(
)
Круглые
скобки
paren
[
]
Квадратные
скобки
paren
{
}
Фигурные
скобки
paren
.
Десятичная
точка
punct
.
Выделение
поля структуры
punct
..
Родительский
каталог
punct
...
Продолжение
строки
punct
,
Разделитель
punct
;
Точка
с запятой
punct
%
Комментарий
punct
i
Вызов
команды операционной системы
punct
=
Присваивание
punct
1
Кавычка
punct
1
Транспонирование
transpose
1
Транспонирование
с комплексным сопряжением
ctranspose
[,]
Горизонтальная
конкатенация
horzcat
[;]
Вертикальная
конкатенация
vertcat
(
).( }..
Присваивание
подмассива
subsasgn
(
).{ }..
Ссылка
на подмассив
subsref
Индекс
подмассива
subsindex
Теперь рассмотрим
их более подробно.
:
(двоеточие) — формирование подвекторов и подматриц из векторов и матриц.
Оператор : — один из наиболее часто используемых операторов в системе MATLAB.
Оператор :
использует следующие правила для создания векторов:
j:k — то
же, что и [j.j+l,...,k];
j:k —
пустой вектор, если j>k;
j:i :k
— то же, что и [j, j+i ,j+2i .....k];
j:i :k
— пустой вектор, если i>0 и j>k или если i<0 и j<k, где 1, j
и k — скалярные величины.
Ниже показано,
как выбирать с помощью оператора : строки, столбцы и элементы из векторов, матриц
и многомерных массивов:
А(:, j)
— это j-й столбец из А;
А(i,:)
— это i-я строка из А;
А(:,:)
— эквивалент двумерного массива. Для матриц это аналогично А;
A(j:k)
- это A(j), A(j+l),...,A(k);
A(:J:k)-это
A(:.j),A(:,j+l),...,A(:,k);
А(:,:
,k) — это
k-я
страница трехмерного массива А;
A(i.j.k.:)
— вектор, выделенный из четырехмерного массива А. Вектор включает элементы
А(1, j.k.l), A(i. j,k,2), A(i. j,k.3) и т. д.;
А(:) —
записывает все элементы массива А в виде столбца.
Символы (
) (круглые скобки) используются для задания порядка выполнения операций в арифметических
выражениях, указания последовательности аргументов функции и указания индексов
элемента вектора или матрицы. Если X и V — векторы, то X(V) можно представить
как [X(V(D), X(V(2)).....X(V(n))]. Элементы вектора V должны быть целыми числами,
чтобы их можно было использовать как индексы элементов массива X. Ошибка генерируется
в том случае, если индекс элемента меньше единицы или больше, чем size(X). Такой
же принцип индексирования действителен и для матриц. Если вектор V имеет
т
компонентов, а вектор W —
п
компонентов, то A(V,W) будет матрицей
размера mxn, сформированной из элементов матрицы А, индексы которой — элементы
векторов V и W.
Символы [
] (квадратные скобки) используются для формирования векторов и матриц:
[6.9 9.64
sqrt(-l)] — вектор, содержащий три элемента, разделенных пробелами;
[6.9.
9.64. i] —такой же вектор;
[1+j 2-j
3] и [1 +j 2 -j 3] — разные векторы: первый содержит три элемента, а второй
пять;
[11 12
13: 21 22 23] — матрица размера 2x3. Точка с запятой разделяет первую и
вторую строки.
Еще несколько
примеров:
А = [
] — сохраняет пустую матрицу в А;
А(m. :)
= [] — удаляет строку m из матрицы А;
А(: ,n)
= [ ] — удаляет столбец n из матрицы А.
Символы {
} (фигурные скобки) используются для формирования массивов ячеек. Например,
{magic(3) 6.9 'hello'} — массив ячеек с тремя элементами.
Символ . (десятичная
точка) используется для отделения дробной части чисел от целой. Например, 314/100,
3.14 и .314е1 — одно и то же число.
Кроме того,
символ точки . используется для выделения полей структур. Например, A.(field)
и A(i).field, где А — структура, означает выделение поля структуры с именем
«field».
Ниже перечислено
назначение остальных специальных символов MATLAB:
.. (родительский
каталог) — переход по дереву каталогов на один уровень вверх;
...
(продолжение) — три или более точек в конце строки указывают на продолжение
строки;
;
(точка с запятой) — используется внутри круглых скобок для разделения строк
матриц, а также в конце операторов для запрета вывода на экран результата
вычислений;
,
(запятая) — используется для разделения индексов элементов матрицы и аргументов
функции, а также для разделения операторов языка MATLAB. При разделении
операторов в строке запятая может заменяться на точку с запятой с целью
запрета вывода на экран результата вычислений;
%
(знак процента) — используется для указания логического конца строки.
Текст, находящийся после знака процента, воспринимается как комментарий
и игнорируется (увы, за исключением русскоязычных комментарий, которые нередко
ведут к ошибочным командам);
!
(восклицательный знак) — является указателем ввода команды операционной
системы. Строка, следующая за ним, воспринимается как команда операционной
системы;
= (знак
равенства) — используется для присваивания значений в арифметических выражениях;
'
(одиночная кавычка, апостроф) — текст в кавычках представляется как вектор
символов с компонентами, являющимися ASCII-кодами символов. Кавычка внутри
строки задается двумя кавычками. Например:
»
a-'Hello''my friend'
а
=
Hello'my
friend
'
(транспонирование с комплексным сопряжением) — транспонирование матриц,
например А' — транспонированная матрица А. Для комплексных матриц транспонирование
дополняется комплексным сопряжением. Строки транспонированной матрицы соответствуют
столбцам исходной матрицы;
.'
(транспонирование) — транспонирование массива, например А.' — транспонированный
массив А. Для комплексных массивов операция сопряжения не выполняется;
[.] —
горизонтальная конкатенация. Так, [А.В] — горизонтальная конкатенация (объединение)
матриц А и В. А и В должны иметь одинаковое количество
строк.
[А
В] действует аналогично. Горизонтальная конкатенация может быть применена
для любого числа матриц в пределах одних скобок: [А,В,С]. Горизонтальная
и вертикальная конкатенации могут использоваться одновременно: [А,В:С];
[:] —
вертикальная конкатенация. Так, [А:В] — вертикальная конкатенация (объединение)
матриц А и В. А и В должны иметь одинаковое число
столбцов.
Вертикальная
конкатенация может быть применена для любого числа матриц в пределах одних
скобок: [А:В:С]. Горизонтальная и вертикальная конкатенации могут использоваться
одновременно: [А;В,С];
(),{} — присваивание подмассива. Приведем несколько примеров:
А(1)=В
— присваивает значения элементов массива В элементам массива А, которые
определяются вектором индексов I. Массив В должен иметь такую же размерность,
как и массив I, или может быть скаляром;
А(I,J)=B
— присваивает значения массива В элементам прямоугольной подматрицы
А, которые определяются векторами индексов I и J. Массив В должен иметь
LENGTH(I) строк и LENGTH(J) столбцов;
А{1}=В,
где А — массив ячеек и I — скаляр, помещает копию массива В в заданную
ячейку массива А. Если I имеет более одного элемента, то появляется
сообщение об ошибке.