Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Glava_2a70_2014.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

2.15.8. Специальные функции формирования массивов.

Если требуется сформировать матрицу, у которой элементы, расположенные по главной диагонали, равны единице, а остальные элементы равны нулю, можно воспользоваться функцией eye:

>> C=eye(3,4)

C =

1 0 0 0

0 1 0 0

0 0 1 0

Чтобы заполнить матрицу случайными числами, можно обратиться к функциям rand и randn. Функция rand позволяет сформировать матрицу из случайных чисел, равномерно распределенных на интервале от 0 до 1:

>> C=rand(2,3)

C =

0.2785 0.9575 0.1576

0.5469 0.9649 0.9706

Функция randn формирует матрицу из случайных чисел, распределенных по нормальному закону:

>> C=randn(2,3)

C =

0.7254 0.7147 -0.1241

-0.0631 -0.2050 1.4897

Функция magic формирует так называемую «магическую» матрицу, у которой сумма элементов каждого столбца, строки и диагонали равна одному и тому же числу. Эта функция имеет единственный аргумент, определяющий размер создаваемой квадратной матрицы (магический квадрат):

>> C=magic(3)

C =

8 1 6

3 5 7

4 9 2

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

С помощью функции pascal можно задать матрицу Паскаля (матрица Паскаля – это матрица, элементами которой являются биномиальные коэффициенты), структура которой соответствует треугольнику Паскаля:

>> C=pascal(3)

C =

1 1 1

1 2 3

1 3 6

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

>> c=diag(C)

c =

1

2

6

Аналогичным образом можно извлечь, например, любую диагональ матрицы – для этого следует лишь указать ее номер в качестве второго аргумента функции diag (при этом диагонали отсчитываются вверх и вниз от главной, которая по умолчанию имеет номер 0).

>> C=magic(3)

C =

8 1 6

3 5 7

4 9 2

>> c1=diag(C,1)

c1 =

1

7

>> c2=diag(C,-1)

c2 =

3

9

Функция diag также позволяет сформировать такие матрицы, у которых элементы, расположенные по диагонали, соответствуют элементам некоторого вектора, а остальные элементы равны нулю. В качестве примера сформируем диагональную матрицу из вектор-строки a:

>> a=[4 1 -1]

a =

4 1 -1

>> D=diag(a)

D =

4 0 0

0 1 0

0 0 -1

Если элементами вектора требуется заполнить не главную диагональ, а какую-либо другую, следует указать ее номер во втором аргументе функции diag:

>> D1=diag(a,1)

D1 =

0 4 0 0

0 0 1 0

0 0 0 -1

0 0 0 0

>> D2=diag(a,-1)

D2 =

0 0 0 0

4 0 0 0

0 1 0 0

0 0 -1 0

§ 2.16. Вычисления с массивами

В традиционных языках программирования вычисления с массивами осуществляются поэлементно в том смысле, что требуется запрограммировать каждую отдельную операцию над отдельным элементом массива. В M-языке системы MATLAB (как и в языке программирования FORTRAN (стандарт Fortran 90 и позднее)) допускаются групповые операции над всем массивом сразу. Эти групповые операции в MATLAB позволяют компактно задать выражения, вычисление которых может быть сопряжено на практике с гигантским объемом вычислений. Вместе с тем, очевидно, что непосредственное использование указанных возможностей требует от пользователя, использовавшего ранее какой-либо из традиционных языков программирования, определенной перестройки стиля мышления.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]