Документация
Самый легкий способ удалить строку или столбец матрицы — установить эту строку или столбец равной паре квадратных скобок[]. Например, создайте матрицу 4 на 4 и удалите вторую строку.
Теперь удалите третий столбец.
Можно расширить этот подход к любому массиву. Например, создайте случайные 3 3х3 массивом и удалите все элементы в первой матрице третьей размерности.
Похожие темы
Документация MATLAB
Поддержка
© 1994-2019 The MathWorks, Inc.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
удалять строки в матрице при условиях в matlab
Моя программа создает матрицу, в которой значения ячеек в нескольких строках одинаковы в соответствующих столбцах. Я хочу удалить некоторые из этих строк, чтобы отфильтровать матрицу. Чтобы уточнить, моя матрица имеет следующий вид:
и я хочу удалить строки, которые в первом, втором и третьем столбцах имеют одинаковые значения и оставляют в матрице строки, которые в четвертой строке имеют наибольшее значение. Результатом должна быть следующая матрица:
Я знаю, что когда мы удаляем строки в матрице с условием, мы используем что-то вроде следующего: M(M(:,4)<=1.5,:)=[]; , который удаляет все строки в матрице, которые в четвертом столбце имеют значения менее 1.5 . Но я не знаю, как сделать что-то вроде того, что я описал
Добавление строк и столбцов
Чтобы добавить столбец (строку), достаточно присвоить значение элементу с индексом, выходящим за пределы массива.
А (2, 3) = 10 приводит к матрице 2×3
Как видно, неопределенные элементы заполняются нулями.
Можно присвоить и все значения строки или столбца.
- 4 5 6
- 7 8 4
Нельзя присваивать массивы различной размерности.
А2 (:, 1) = 1:10-к двумерному массиву присваивается одно
мерный массив, при этом MatLab выдаст сообщение об ошибке. Однако можно сделать, например, такое присвоение:
А2(1, :, 1) = 1:5 % одномерный массив присваивается одномерному массиву.
Удаление строк и столбцов
Используя понятие пустого массива, можно удалять строки, столбцы или блоки.
А = [1 2 3; 4 5 6; 7 8 9]
Удалим третий столбец
- 3 4
- 7 8
А = [1 2 3; 4 5 6; 7 8 9]
Удалим вторую строку
Однако таким образом удалить один элемент нельзя.
А(1,2) = [ ] % выдается сообщение об ошибке
. Indexed empty assignment is not allowed.
Запрещено присвоение пустой матрицы индексному выражению.
В силу сохранения в памяти массивов по столбцам (см. выше) элементы массивов можно индексировать одним числом.
Поэтому использование единственного индекса позволяет удалять одиночные элементы или последовательности элементов, при этом оставшиеся элементы преобразуются в вектор-строку.
Например, для массива
А = А = [1 2 3; 4 5 6; 7 8 9]
элемент А (1, 2) можно удалить следующим образом:
при этом получим вектор-строку А =[ 1475836 9]
Использование массивов в функциях
При использовании функций от массивов необходимо определить, какой массив нужен функции. Различные функции могут работать:
- 1. с отдельными элементами,
- 2. со столбцами массивов,
- 3. с двумерными массивами (матрицами),
- 4. с многомерными массивами (матрицами).
- 1. Функции, работающие с отдельными элементами
К этим функциям относятся все математические функции, операторы отношения, логические операторы и т. д.
2. Функции, работающие со столбцами массивов
Функции типа sum, mean, diff и т. д. по умолчанию используют в качестве аргумента первую размерность многомерного массива, значение которой не равно 1.
Замечание 1
Большинство таких функций позволяет пользователю указать ту конкретную размерность, которую надо применять в качестве входа.
Замечание 2
Есть и исключения. Например, функция cross использует в качестве входных аргументов векторы длиной 3.
3. Функции, работающие с матрицами
Функции линейной алгебры и матричные функции могут работать только с двумерными матрицами. Поэтому их можно применять только к двумерным подмножествам многомерного массива.