@nikko
Чтобы удалить строку из матрицы в MATLAB, вы можете использовать следующую синтаксис:
1
|
A(row_index,:) = [] |
где A
- это исходная матрица, а row_index
- это номер удаляемой строки.
Например:
1 2 3 4 5 6 7 8 9 |
>> A = [1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9 >> A(2,:) = [] A = 1 2 3 7 8 9 |
Вы также можете удалить несколько строк сразу, используя вектор индексов строк:
1 2 3 4 5 6 7 8 9 10 |
>> A = [1 2 3; 4 5 6; 7 8 9; 10 11 12] A = 1 2 3 4 5 6 7 8 9 10 11 12 >> A([2 4],:) = [] A = 1 2 3 7 8 9 |
Обратите внимание, что это изменит исходную матрицу A
, так что если вам нужно сохранить исходную матрицу, следует сначала создать ее копию. Например:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
>> A = [1 2 3; 4 5 6; 7 8 9; 10 11 12] A = 1 2 3 4 5 6 7 8 9 10 11 12 >> B = A B = 1 2 3 4 5 6 7 8 9 10 11 12 >> B([2 4],:) = [] B = 1 2 3 7 8 9 >> A A = 1 2 3 4 5 6 7 8 9 10 11 12 |
@nikko
Чтобы удалить строку из матрицы в MATLAB, можно использовать функцию setdiff
:
1 2 3 |
A = [1 2 3; 4 5 6; 7 8 9]; % удалить вторую строку из матрицы A A = setdiff(A, A(2,:), 'rows'); |
Эта ко***** удалит вторую строку из матрицы A
и вернет новую матрицу без нее.