Работа с массивами в MATLAB — видео
MATLAB хранит все типы данных в массивах. Сюда входят не только числовые данные, но и данные других типов, такие как строки или даже сложные объекты. Таким образом, работа с массивами является фундаментальной для работы с MATLAB. С помощью языка MATLAB вы можете создавать массивы, получать доступ и присваивать значения элементам массива, используя ряд методов индексации, а также выполнять множество других операций для управления содержимым массива.
Давайте сначала рассмотрим создание массивов. Вы можете создать массив, указав конкретные значения, используя квадратные скобки и запятые или пробелы для разделения столбцов в строке, например A равно 1, 2, 3, 4, и точку с запятой для разделения строк. Вы можете создавать одномерные массивы с равными интервалами с помощью оператора столбца, такого как A равно от 1 до 10, A равно от 1 до 10 с шагом 2 или A равно от 10 до 1 с шагом минус 2.
Функция linspace аналогична оператору двоеточия, позволяя указать начальное и конечное значение, но дает контроль над количеством точек, например 7.
Теперь посмотрим, как можно получить доступ и изменить значения элементов массива с помощью различных форм индексации. Вы можете указать элементы массива с помощью простой индексации строк и столбцов. Вот элемент A во втором столбце первой строки.
Вы можете указать диапазон строк и столбцов для доступа к разделам массива, таким как строка 1, столбцы с 1 по 2. Элементы не обязательно должны быть непрерывными, например, строка 1, столбцы 1 и 3. Вы можете указать все строки или столбцы с помощью оператора двоеточия, в данном случае указывая все столбцы. Вы также можете использовать ключевое слово конца, такое как строка 1, столбцы 2 в конец или 2 в конец минус 1.
Вы можете присвоить значения определенным элементам, указав индексирование в левой части уравнения, например строки 1, столбцы 2 до конца минус 1 равно 10 10. Вы можете удалить одну или несколько строк массива, таких как строки с 1 по 2, все столбцы, назначив их пустой матрице, обозначенной квадратными скобками. A теперь на две строки короче.
Иногда бывает удобно рассматривать двумерные массивы, такие как эти, как одномерный массив, как если бы все столбцы были сложены вместе в один столбец и указать один индекс. Это называется линейной индексацией. Например, к элементу в строке 1 столбца 2 можно получить доступ через один линейный индекс, 5.
Это возможно, потому что массивы MATLAB хранятся в памяти по столбцам. Другими словами, каждый столбец в массиве сохраняется один за другим. Таким образом, элемент в строке 1 столбца 2 фактически является пятым сохраненным элементом. Оператор двоеточия, используемый сам по себе, указывает все элементы при использовании линейной индексации и возвращает один вектор-столбец со всем содержимым массива.
Вы также можете получить доступ к элементам с помощью так называемой логической индексации, когда вы указываете массив индексации одинакового размера, заполненный истинными или ложными значениями, например маску. Это полезно для работы с элементами, значения которых соответствуют некоторому критерию, такому как A меньше 0,5, что создает массив логических значений того же размера, что и A, с истинными значениями, отображаемыми здесь как 1, когда A меньше 0,5. Обратите внимание, что логические значения, такие как истина и ложь, отображаются как 1 и 0 соответственно.
Мы можем использовать логические массивы, подобные этому, для выполнения логического индексирования, такого как установка элементов A, где A меньше 0,5, на отрицательную 1. Чтобы найти индексы элементов массива, которые соответствуют вашим критериям, используйте функцию Find, которая находит ненулевые значения вместе с логическим выражением. Это дает линейные индексы элементов, которые удовлетворяют условию А меньше 0,5. Вместо этого вы можете получить индексы строк и столбцов. Вы можете увидеть информацию обо всех методах индексации в документации.И, наконец, давайте посмотрим, как можно извлечь некоторую полезную информацию о массиве и выполнить некоторые основные операции. Вы можете получить базовую информацию о массиве, например определить, пуст ли он, получить длину — обычно используемую для одномерных массивов — размер всех измерений или общее количество элементов. Как мы видели ранее, создание массивов с помощью квадратных скобок позволяет нам объединить ряд массивов по горизонтали или по вертикали. Другие полезные функции манипулирования массивами включают в себя перелистывание влево-вправо и перелистывание вверх-вниз, преобразование для репликации матриц, изменение формы и сортировку.
Хотя в приведенных здесь примерах используются одно- и двумерные массивы, большинство из этих методов можно применять и к многомерным массивам. См. документацию для получения дополнительной информации. На этом демонстрация заканчивается. Попробуйте эти функции в MATLAB прямо сейчас или посмотрите один из других видеороликов.
Индексация массива — MATLAB & Simulink
Основное содержимое
Open Live Script
Каждая переменная в MATLAB® представляет собой массив, который может содержать множество чисел. Если вы хотите получить доступ к выбранным элементам массива, используйте индексацию.
Например, рассмотрим матрицу 4 на 4 A
:
A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]
А = 4×4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Существует два способа обращения к определенному элементу массива. Наиболее распространенный способ — указать индексы строк и столбцов, например
A(4,2)
ans = 14
Менее распространенным, но иногда полезным является использование одного нижнего индекса, который проходит по каждому столбцу по порядку:
ответ = 14
Использование одного нижнего индекса для ссылки на определенный элемент в массиве называется линейной индексацией .
Если вы попытаетесь сослаться на элементы вне массива в правой части оператора присваивания, MATLAB выдаст ошибку.
тест = А(4,5)
Индекс в позиции 2 выходит за границы массива (не должен превышать 4).
Однако в левой части оператора присваивания можно указать элементы вне текущих измерений. Размер массива увеличивается для размещения новичков.
А(4,5) = 17
А = 4×5 1 2 3 4 0 5 6 7 8 0 9 10 11 12 0 13 14 15 16 17
Чтобы обратиться к нескольким элементам массива, используйте оператор двоеточия, который позволяет указать диапазон в форме начало:конец
. Например, перечислите элементы в первых трех строках и во втором столбце A
:
A(1:3,2)
ans = 3×1 2 6 10
Только двоеточие без начального и конечного значений определяет все элементы в этом измерении. Например, выберите все столбцы в третьей строке A
:
A(3,:)
ans = 1×5 9 10 11 12 0
Оператор двоеточия также позволяет создать равноотстоящий вектор значений, используя более общую форму начало:шаг:конец
.