Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Matlab BSU.doc
Скачиваний:
11
Добавлен:
08.09.2019
Размер:
1.04 Mб
Скачать

Векторные индексы.

Из предыдущего примера следует, что в качестве индексов могут использоваться векторы. Если X и V векторы, то X(V) можно представить как вектор [X(V(1)), X(V(2)),…, X(V(n))]. Элементы вектора V должны быть целыми числами, чтобы их можно было использовать как индексы элементов массива X. Ошибка выдается в том случае, если индекс элемента меньше единицы или больше, чем size(X). Такой же принцип индексирования действителен и для матриц. Если вектор V имеет m компонент, а вектор Wn компонент, то M(V, W) будет матрицей размером mxn, сформированной из элементов матрицы M, индексы которой – элементы векторов V и W.

Векторные индексы можно использовать в операциях присваивания, например:

M(I, J) = B присваивает значения массива B элементам прямоугольной подматрицы M, которые определяются векторами I и J. Массив B должен иметь length(I) строк и length(J) столбцов. В следующем примере векторный индекс используется для перестановки 2 и 3 столбцов матрицы B, результат помещается в матрицу A:

A = B(:, [1 3 2 4]);

Удаление строк и столбцов.

Строки и столбцы матрицы можно удалить, используя пустые квадратные скобки [].

Создадим магическую матрицу размером 4x4 :

M=magic(4)

M =

16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1

Затем удалим второй столбец:

M(:, 2) = []

M =

16 3 13

5 10 8

9 6 12

4 15 1

Используя один индекс вместо двух или векторный индекс, можно удалить из матрицы один или несколько выборочных элементов соответственно. При этом матрица преобразуется в вектор–строку:

M(2:2:10) = []

M =

16 9 3 6 13 12 1

Объединение матриц.

Объединение матриц – это процесс соединения нескольких матриц в одну большую. Фактически, исходная матрица создается объединением ее отдельных элементов. Оператор объединения – это пара квадратных скобок. Так, [A, B] – горизонтальная конкатенация (объединение) матриц A и B, которые должны иметь одинаковое количество строк. Горизонтальная конкатенация может быть применена для любого числа матриц в пределах одних скобок: [A, B, C]. При вертикальной конкатенации матрицы в квадратных скобках разделяются точкой с запятой: [A; B; C]. Горизонтальная и вертикальная конкатенации могут использоваться одновременно.

Приведем пример:

M=[1 2; 3 4]

M =

1 2

3 4

B=[M M+4; M+6 M+2]

B =

1 2 5 6

3 4 7 8

7 8 3 4

9 10 5 6

Транспонирование матриц.

Матрицы можно транспонировать с помощью оператора ‘ (апостроф), например A’ – транспонированная матрица A. Для комплексных матриц транспонирование дополняется комплексным сопряжением. Строки транспонированной матрицы соответствуют столбцам исходной матрицы.

Создание матриц с заданными свойствами.

Для создания единичной матрицы служит функция eye:

  • eye(n) – возвращает единичную матрицу размером nxn;

  • eye(m, n) – возвращает матрицу размером mxn с единицами на главной диагонали;

  • eye(size(A)) – возвращает единичную матрицу того же размера, что и A.

Пример использования функции eye:

M = eye(4, 5)

M =

1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

  1. 0 0 1 0

Для создания матриц, все элементы которых – единицы, используется функция ones:

  • ones(n) – возвращает матрицу размером nxn, все элементы которых – единицы;

  • ones(m, n) – возвращает матрицу размером mxn, состоящую из единиц;

  • ones(d1, d2, d3,…) – возвращает массив из единиц с размером d1xd2xd3,…;

  • ones(size(A)) – возвращает массив единиц такой же размерности, что и A.

Пример:

M = ones(3, 4)

M =

1 1 1 1

1 1 1 1

1 1 1 1

Создание нулевой матрицы обеспечивает функция zeros, аргументы которой точно такие же, как и у функции ones.

Создавать матрицы с заданными диагональными элементами позволяет функция diag:

  • X = diag(v,k) – для вектора v, состоящего из n компонент, возвращает квадратную матрицу X порядка n + abs(k) с элементами v на k-й диагонали, при k = 0 это главная диагональ, при k > 0 – одна из верхних диагоналей, при k < 0 – одна из нижних диагоналей. Остальные элементы матрицы – нули;

  • X = diag(v) – помещает вектор v на главную диагональ;

  • V = diag(X, k) – для матрицы X возвращает вектор-столбец, состоящий из элементов k-й диагонали матрицы X;

  • V = diag(X) – возвращает главную диагональ матрицы X.

Для создания матриц, состоящих из других матриц, служат следующие функции:

  • repmat(A, m, n) возвращает матрицу A, состоящую из mxn копий матрицы A;

  • repmat(A, n) возвращает матрицу A, состоящую из nxn копий матрицы A;

  • repmat(A, [m n p]) возвращает многомерный массив, состоящий из копий матрицы A. Матрица A может быть многомерной;

  • repmat(a, m, n) возвращает матрицу размером mxn со значениями элементов, заданных скаляром a.

Пример:

A=[1 2; 3 4]

A =

1 2

3 4

repmat(A, 2, 3)

ans =

1 2 1 2 1 2

3 4 3 4 3 4

1 2 1 2 1 2

3 4 3 4 3 4

  • reshape(A, m, n) возвращает матрицу размером mxn, сформированную из A путем последовательной выборки по столбцам. Если число элементов A не равно mxn, то выдается сообщение об ошибке;

  • reshape(A, m, n, p,…) возвращает N-мерный массив с элементами из A, но имеющий размер mxnxp…равный prod(size(A));

  • reshape(A, v) возвращает N-мерный массив с элементами из A, но перестроенный к размеру, заданному вектором v.

Пример:

M=1:6

M =

1 2 3 4 5 6

A=reshape(M, 2, 3)

A =

1 3 5

2 4 6

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