Индексация при помощи двоеточия удобна при выделении части из большого объема данных в новый массив. Пусть задан вектор W
>> W=[0.1 2.2 3.4 5.6 3.1 6.8 9.7]
W =
0.1000 2.2000 3.4000 5.6000 3.1000 6.8000 9.7000
Составим вектор P, состоящий из всех элементов вектора W, кроме третьего, используя двоеточие и сцепление строк:
>> P=[W(1:2) W(4:7)]
P =
0.1000 2.2000 5.6000 3.1000 6.8000 9.7000
Выделение блоков матриц также осуществляется индексацией с помощью двоеточия. Введем матрицу
>> P=[1 2 0 2;4 10 12 5;0 11 10 5;9 2 3 5]
P =
1 2 0 2
4 10 12 5
0 11 10 5
9 2 3 5
Выделим из нее матрицу размером 2×2, находящуюся в центре:
>> P1=P(2:3,2:3)
P1 =
10 12
11 10
Вставим на это же место матрицу F размером 2×2:
>> F=[3 -7;4 11]
F =
3 -7
4 5
>> P(2:3,2:3)=F
P =
1 2 0 2
4 3 -7 5
0 4 11 5
9 2 3 5
Для удаления отдельных столбцов и строк матрицы используются пустые квадратные скобки [ ]. Удалим второй столбец матрицы P:
>> P(:,2)=[]
P =
1 0 2
4 -7 5
0 11 5
9 3 5
А теперь удалим вторую строку:
>> P(2,:)=[]
P =
1 0 2
0 11 5
9 3 5
«Растянуть» матрицу Р в единый вектор-столбец V можно с помощью простой записи:
>> V=P(:)
V =
«Расширять» матрицу, составляя ее из отдельных заданных матриц («блоков»), можно тоже довольно просто. Если заданы несколько матриц - блоков A1, A2,…,AN с одинаковым числом строк, то из них можно «слепить» единую матрицу А, объединяя блоки в одну «строку» операцией горизонтального сцепления A=[A1,A2,…,AN]. Аналогично вертикальное сцепление матриц можно реализовать при условии, что все составляющие блоки - матрицы имеют одинаковое число столбцов, применяя для отделения блоков вместо запятой точку с запятой: A=[A1;A2;…,AN].
Пример горизонтального сцепления:
>> A1=[1 2 3;4 5 6;7 8 9]
A1 =
1 2 3
4 5 6
7 8 9
>> A2=[10;11;12]
A2 =
>> A3=[14 15;16 17;18 19]
A3 =
14 15
16 17
18 19
>> A=[A1,A2,A3]
A =
1 2 3 10 14 15
4 5 6 11 16 17
7 8 9 12 18 19
Пример вертикального сцепления:
>> B1=[1 2 3 4 5]
B1 =
1 2 3 4 5
>> B2=[6 7 8 9 10;11 12 13 14 15]
B2 =
6 7 8 9 10
11 12 13 14 15
>> B3=[17 18 19 20 21]
B3 =
17 18 19 20 21
>> B=[B1;B2;B3]
B =
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
17 18 19 20 21
Построение таблицы значений функции
Пусть требуется вывести в командное окно таблицу значений функции
y = 3e-0,5xsinx при изменении аргумента х от 0 до 5 с шагом 0,5. Вычисление массива значений этой функции в указанных условиях можно осуществить с помощью простых операторов:
Результат, отображенный на экране, не похож на таблицу. Построим таблицу в виде столбцов значений переменной и функции, используя вертикальное сцепление: