Как удалить строку из матрицы в matlab?

Пользователь

от nikko , в категории: Другие , 3 года назад

Как удалить строку из матрицы в matlab?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от violette_robel , 2 года назад

@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


Пользователь

от hoyt.jerde , 2 года назад

@nikko 

Чтобы удалить строку из матрицы в MATLAB, можно использовать функцию setdiff:

1
2
3
A = [1 2 3; 4 5 6; 7 8 9];
% удалить вторую строку из матрицы A
A = setdiff(A, A(2,:), 'rows');


Эта ко***** удалит вторую строку из матрицы A и вернет новую матрицу без нее.