deleting rows in a matrix?

1 visualización (últimos 30 días)
JacobM
JacobM el 23 de Sept. de 2016
Comentada: JacobM el 23 de Sept. de 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 comentario
Walter Roberson
Walter Roberson el 23 de Sept. de 2016
Does the order of the rows need to stay the same?

Iniciar sesión para comentar.

Respuesta aceptada

Walter Roberson
Walter Roberson el 23 de Sept. de 2016
[x2u, x2u_idx] = unique(x2, 'stable');
new_x = x(x2u_idx, :);
  1 comentario
JacobM
JacobM el 23 de Sept. de 2016
Perfect! thanks Walter

Iniciar sesión para comentar.

Más respuestas (1)

Thorsten
Thorsten el 23 de Sept. de 2016
new_x = x(unique(x2),:);
  3 comentarios
JacobM
JacobM el 23 de Sept. de 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 el 23 de Sept. de 2016
Thanks Thorsten for your input, it is really appreciated!

Iniciar sesión para comentar.

Categorías

Más información sobre Logical en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by