james.sw.clark
james.sw.clark

Reputation: 357

Remove rows from a matrix

I have the array "A" with values:

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

And I wish to remove this first row and retain the shape of the array (2 columns), thus creating the array

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

I have used A = A(A~=101); , which removes the values as required - however it packs the array down to one column.

Upvotes: 3

Views: 594

Answers (1)

Dan
Dan

Reputation: 45741

The best way is:

A = A(2:end, :)

But you can also do

A(1,:) = []

however it is slightly less efficient (see Deleting matrix elements by = [] vs reassigning matrix)

If you are looking to delete rows that equal a certain number try

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

Use all or any if you want to delete row if either all or any column equals your value:

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

Upvotes: 5

Related Questions