deleting rows in a matrix?

1 Ansicht (letzte 30 Tage)
JacobM
JacobM am 23 Sep. 2016
Kommentiert: JacobM am 23 Sep. 2016
I want to delete corresponded rows in mother matrix x when x2 have duplicated rows, the following code may explain the goal:
x=[1 0 0 1 1;1 0 1 0 1;1 1 0 0 1]; %mother matrix
y=[5 -2 -1 -1 -1];
x2=[];
for k=1:size(x,1)
x2=[x2;x(k,:)*y'];
end
so this code will give x2=[3;3;2] which means row '1' and row '2' are considered the same and I want to use only one row and delete the other, how can I do that?
  1 Kommentar
Walter Roberson
Walter Roberson am 23 Sep. 2016
Does the order of the rows need to stay the same?

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 23 Sep. 2016
[x2u, x2u_idx] = unique(x2, 'stable');
new_x = x(x2u_idx, :);

Weitere Antworten (1)

Thorsten
Thorsten am 23 Sep. 2016
new_x = x(unique(x2),:);
  3 Kommentare
JacobM
JacobM am 23 Sep. 2016
x=[1 0 0 1 1;1 0 1 0 1;1 1 0 0 1];
y=[5 -2 -1 -1 -1];
x2=[];
for k=1:size(x,1)
x2=[x2;x(k,:)*y'];
end
[x_val,x_idx]=unique(x2);
for i=1:size(x_idx)
j=x_idx(i);
new_x(i,:)=x(j,:);
end
i did this and it works but looking for simpler code?
JacobM
JacobM am 23 Sep. 2016
Thanks Thorsten for your input, it is really appreciated!

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by