- •Математическая система matlab методические указания
- •Введение
- •1. Интерфейс matlab и команды общего назначения
- •1.1. Основные элементы рабочей среды
- •1.2. Справка и документация
- •1.3. Команды общего назначения
- •2. Простейшие вычисления
- •2.1. Основные принципы работы в matlab
- •2.2. Числа, константы и системные переменные
- •2.3. Переменные и оператор присваивания
- •2.4. Элементарные математические функции
- •2.5. Специальные математические функции
- •3. Работа с матрицами и массивами
- •3.1. Основные определения и понятия
- •3.2. Особенности задания векторов и матриц
- •3.3. Формирование векторов и матриц специального вида
- •3.4. Конкатенация матриц, удаление и вставка частей матриц
- •3.5. Операции с матрицами и массивами
- •4. Построение графиков функции
- •4.1. Двумерная графика
- •4.2. Трехмерная графика
- •5. Лабораторные задания
- •Библиографический список
- •Содержание
- •09.03.02 «Информационные системы и технологии»
- •09.03.01 «Информатика и вычислительная техника»
- •394026 Воронеж, Московский просп., 14
3.4. Конкатенация матриц, удаление и вставка частей матриц
В процессе решения тех или иных задач часто возникает необходимость внесения некоторых изменений в исходные матрицы. Эти изменения могут касаться как простых операций, связанных, например, с заменой части элементов матрицы на их новые значения, так и более сложных преобразований. Часто требуется из нескольких малых матриц сформировать большую матрицу. Такое объединение малых матриц в большую называется конкатенацией (сцеплением). Иногда, напротив, требуется удалить из исходной матрицы часть строк или столбцов, в результате чего создается меньшая матрица из большей. Рассмотрим возможности системы MATLAB в отношении указанных операций.
Объединение малых матриц в большую (конкатенация)
Общий принцип горизонтальной конкатенации: блоки-матрицы Ai имеют одинаковое число строк и объединяются в обобщенную «строку»
A = [A1, A2, … , An],
отделяясь между собой пробелами или запятыми. При вертикальной конкатенации блоки-матрицы Ai должны иметь одинаковое число столбцов, что позволяет сцепить их в обобщенный «столбец»
A = [A1; A2; … ; An].
При этом блоки отделяются друг от друга точкой с запятой. Для иллюстрации конкатенации создадим вначале несколько исходных векторов и матриц:
>>A = ones(3) >> B = eye(3)*(‐3) A = B =
1 1 1 ‐3 0 0
1 1 1 0 ‐3 0 1 1 1 0 0 ‐3
>> X = [6:8]
X =
6 7 8
>> D=[A X'] % Горизонтальная конкатенация
D =
1 1 1 6
1 1 1 7
1 1 1 8
>> V=[B;A] % Вертикальная конкатенация
V =
-3 0 0
0 -3 0
0 0 -3
1 1 1
1 1 1
1 1 1
Извлечение и вставка частей матриц
Для извлечения части матрицы из матрицы А необходимо обратиться к имени этой матрицы с указанием в круглых скобках номеров строк и столбцов следующим образом: A(i:j, k:l). Пусть из полученной большой матрицы V необходимо выделить блок размером 3×2, ограниченный 2-й и 4-й строками и 2-м и 3-м столбцами:
>> M=V(2:4,2:3) % Извлечение подматрицы M из матрицы V
M =
-3 0
0 -3
1 1
Пусть требуется создать векторы X1 и Y1. Причем вектор X1 состоит из элементов 2-го столбца матрицы M, а вектор Y1 состоит из элементов 1-й строки матрицы M. Тогда необходимо записать:
>> X1=M(:,2) >> Y1=M(1,:)
X1 = Y1 =
0 -3 0
-3
1
Для вставки подматрицы M в большую матрицу А необходимо обратиться к имени этой матрицы с помощью следующего оператора присваивания: A(i:j, k:l) = М. При этом порядок подматрицы M должен соответствовать указанным в круглых скобках номерам строк и столбцов матрицы А. Пример:
% Вставка блока (4×2) из нулей в матрицу V
>> V(3:6,1:2)=zeros(4,2)
V =
-3 0 0
0 -3 0
0 0 -3
0 0 1
0 0 1
0 0 1
Любую матрицу M можно «растянуть» в единый вектор K с помощью простой записи: K = M(:).
>> K=M(:)
K =
-3
0
1
0
-3
1
Удаление столбцов и строк матриц
Для удаления отдельных строк и столбцов матрицы используются пустые квадратные скобки [ ]. Проделаем это над матрицей V, заданной выше:
>>V(1:4, :)=[]
% Удалеиие с 1‐й по 4‐ю строку матрицы V
V =
0 0 1
0 0 1
Теперь из вновь образованной матрицы V удалим 1-й, 3-й столбeц:
>> V(:,[1,3])=[]
V =
0
0