@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 и вернет новую матрицу без нее.