2015-05-06 4 views
3

У меня есть массив «А» со значениями:Удалить строки из матрицы

101     101 
0     0 
61.6320000000000 0.725754779522671 
73.7000000000000 0.830301150185882 
78.2800000000000 0.490917508345341 
81.2640000000000 0.602561200211232 
82.6880000000000 0.435568593909153 

И я хочу, чтобы удалить эту первую строку и сохранить форму массива (2 колонки), таким образом, создавая массив

0     0 
61.6320000000000 0.725754779522671 
73.7000000000000 0.830301150185882 
78.2800000000000 0.490917508345341 
81.2640000000000 0.602561200211232 
82.6880000000000 0.435568593909153 

Я использовал A = A(A~=101);, который удаляет значения по мере необходимости - однако он упаковывает массив до одного столбца.

+0

'A (A == 101) = [];' – Adiel

ответ

5

Лучший способ:

A = A(2:end, :) 

Но вы также можете сделать

A(1,:) = [] 

однако это немного менее эффективно (см Deleting matrix elements by = [] vs reassigning matrix)

Если вы хотите удалить строки, равное определенному числу try

A = A(A(:,1)~=101,:) 

all Использование или any, если вы хотите удалить строку, если все или любой столбец равен ваше значение:

A = A(all(A~=101,2),:) 
+0

Спасибо, это было очень полезно. Я использовал его несколько раз с тех пор, как вы научили меня ^^ – Idios

Смежные вопросы