X-PDF

Обращение к элементу матрицы

Поделиться статьей

Обращение к элементу матрицы производится по правилу – в круглых скобках после имени матрицы даются индексы, которые должны быть положительными целыми числами. Например, X(2,1) означает элемент из второй строки первого столбца матрицы X. Для дальнейших примеров, введем сигнальную матрицу 4×4:

&gt .&gt . X = [ 1 4e-6 2 0.5 .

0.1 0.22 0.63 0.707 .

0.33 1 2 4 .

1 1 1 2]

&gt .&gt . X(2,1)

ans =

0.1000

Если в качестве индекса задать комплексное число с дробной вещественной частью, то MATLAB выведет ошибку,

&gt .&gt . X(3/2+4i)

??? Subscript indices must either be real positive integers or logicals.

Данный пример показывает, что числа хранятся по столбцам и при обращении к данному двумерному массиву элемент X(2) есть то же самое, что и X(2,1). Чтобы изменить элемент матрицы, ему нужно присвоить новое значение:

&gt .&gt . X(2,5) = sin (1) % Пятый элемент второй строки

X =

1.0000 0.0000 2.0000 0.5000 0

0.1000 0.2200 0.6300 0.8415 0.8415

0.3300 1.0000 2.0000 4.0000 0

1.0000 1.0000 1.0000 2.0000 0

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

Размер матрицы можно уточнить по команде size, а результат команды size можно использовать для организации новой матрицы. Например, нулевая матрица того же порядка, что и матрица X, будет сформирована по команде:

&gt .&gt . X2 = zeros (size(X))

X2 =

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

Для преобразования матрицы в матрицу с другим числом строк и столбцов служит команда reshape:

X3 = reshape (X,5,4)

X3 =

1.0000 0.2200 2.0000 2.0000

0.1000 1.0000 1.0000 0

0.3300 1.0000 0.5000 0.8415

1.0000 2.0000 0.7070 0

Представленная информация была полезной?
ДА
62.58%
НЕТ
37.42%
Проголосовало: 1908

0.0000 0.6300 4.0000 0

С помощью двоеточия легко выделить часть матрицы. Например, вектор из первых двух элементов третьего столбца матрицы X задаётся выражением:

&gt .&gt . X(1:2,3)

ans =

2.0000

0.6300

Двоеточие само по себе означает строку или столбец целиком. Работа с индексами в MATLAB очень удобна. Например, чтобы выделить несколько столбцов массива, достаточно организовать вектор из номеров столбцов. Это можно сделать явным перечислением, а можно указать нужный диапазон. Для выделения матрицы, составленной из нечетных столбцов матрицы X, используем команду:

&gt .&gt . X(:,1:2:3)

ans =

1.0000 2.0000

0.1000 0.6300

0.3300 2.0000

1.0000 1.0000

Здесь конструкция 1:2:3 означает изменение второго индекса от единицы до трех с шагом два. Двоеточие применяется также для замещения элементов матрицы. Следующая команда позволяет переставить первую и вторую строки матрицы X:

&gt .&gt . X([1,2],:)=X([2,1],:)

X =

0.1000 0.2200 0.6300 0.7070 0.8415

1.0000 0.0000 2.0000 0.5000 0

0.3300 1.0000 2.0000 4.0000 0

1.0000 1.0000 1.0000 2.0000 0

Здесь в качестве индекса выступают векторы [1,2] и [2,1]. Для удаления элемента вектора достаточно присвоить ему пустой массив – пару квадратных скобок [ ]. Чтобы вычеркнуть одну или несколько строк (столбцов) матрицы нужно указать диапазон удаляемых строк (столбцов) для одной размерности и поставить двоеточие для другой размерности. Например, для удаления двух последних столбцов матрицы X достаточно ввести команду:

&gt .&gt . X(:,2:end)=[ ]

X =

0.1000

1.0000

0.3300

1.0000

Обратим внимание, что вместо числового значения индекса указано зарезервированное имя end – максимальное значение индекса. В списке аргументов size второй параметр позволяет определить соответствующую размерность матрицы, например, найти число столбцов матрицы. Для нахождения длины вектора можно воспользоваться также командой length. Число стол­бцов матрицы X2 равно 4, не зависимо от того, каким способом пользоваться:

&gt .&gt . [size(X2,2),length(A2(1,:))]

ans = 4 4

Вместо двоеточия можно использовать функцию-синоним colon.


Поделиться статьей
Автор статьи
Анастасия
Анастасия
Задать вопрос
Эксперт
Представленная информация была полезной?
ДА
62.58%
НЕТ
37.42%
Проголосовало: 1908

или напишите нам прямо сейчас:

Написать в MAXНаписать в TelegramНаписать в WhatsApp

или напишите нам прямо сейчас:

Написать в MAXНаписать в TelegramНаписать в WhatsApp
Заявка
на расчет