п. 7). Такие встроенные функции как rand, magic и hilb позволяют легко сгене-
рировать матрицы, с которыми удобно поэкспериментировать. Команда rand(n)
создает матрицу nxn, каждый элемент которой - случайное число с равномерным
распределением в диапазоне [0 1], в то время как команда rand(m,n) создает та-
кую же матрицу размера mxn.Командаmagic(n) создает матрицу nxn, которая
является магическим квадратом (суммы элементов по строкам и столбцам равны).
Команда hilb(n) создает матрицу Гильберта размером nxn, которая является ко-
ролевой плохо определенных матриц (m и n являются, конечно, целыми положи-
тельными числами). Матрицы могут быть сгенерированы также с помощью цикла
for(см. п. 4).
Ссылки на отдельные элементы матриц и векторов осуществляются с помощью
индексов в круглых скобках обычным образом. Например, A(2,3) означает эле-
мент матрицы, стоящий на 2-й строке и 3-м столбце матрицы A,аx(3) означает
3-й элемент вектора x. Попробуйте сами поэкспериментировать с элементами мат-
риц. В качестве индексов векторов и матриц могут использоваться только положи-
тельные числа. На элементы матрицы A можно ссылаться, используя единствен-
ный индекс, A(k). Это обычный способ, когда речь идет о ссылке на элементы
вектора. Но также можно ссылаться и на элементы двумерной матрицы, и в этом
случае эта матрица рассматривается как один длинный вектор-столбец, сформи-
рованный из столбцов исходной матрицы. В приведенной матрице на элемент 5
можно сослаться либо A(2,2),либоA(5). И то и другое правильно.
2.2. Подматрицы и использование двоеточия (:)
Вектора и подматрицы часто используются в системе MATLAB, чтобы полу-
чить компактную запись алгоритмов сложной обработки данных. Использование
нотации с двоеточием (которая используется и для генерации векторов и подмат-
риц) и векторов вместо индексов является ключом к эффективной манипуляции
этими объектами. Творческое использование этих возможностей позволяет мини-
мизировать число явных циклов (использование явных циклов замедляет работу
MATLAB) и делает написанную программу простой и легко читаемой. Правда,
необходимы специальные усилия для овладения этими возможностями. Выраже-
ние 1:5 фактически является вектор-строкой [12345]. Числа в этом векторе не
обязательно целые и инкремент не обязательно равен единице. Например, оператор
x=0.2:0.2:1.2 дает вектор x равный [0.2, 0.4, 0.6, 0.8, 1.0, 1.2], а оператор 5:-
1:1 дает в результате вектор [54321]. Приведенный далее оператор, например,
дает таблицу синусов. Попробуйте выполнить все приведенные выше примеры.
113