Selecting required elements from a matrix

4 visualizaciones (últimos 30 días)
arjun
arjun el 15 de Sept. de 2014
Editada: Guillaume el 15 de Sept. de 2014
I have a matrix A which contains 1's and 0's I wish to construct a new matrix B such that it has all the i,j values where A(i,j)=1, i.e B will be 2 X N matrix with its elements as the indices of the elements in matrix A who have a value of 1. for eg: A=[1,0,1,1,0] then B={[1,1];[1,3];[1,4]} Thanks
  1 comentario
Matt J
Matt J el 15 de Sept. de 2014
B={[1,1];[1,3];[1,4]} does not produce a 2xN matrix,
>> B={[1,1];[1,3];[1,4]}
B =
[1x2 double]
[1x2 double]
[1x2 double]

Iniciar sesión para comentar.

Respuesta aceptada

Guillaume
Guillaume el 15 de Sept. de 2014
Editada: Guillaume el 15 de Sept. de 2014
Is this what you're after ?
[row, col] = find(A);
B = [row col]';
I.e. use the two output version of find.
edit: The above answer assumes A is not a row vector. You can use Matt J fix to handle all cases or, if you know that A is a row vector:
[row, col] = find(A);
B = [row; col];
  2 comentarios
Matt J
Matt J el 15 de Sept. de 2014
Small fix, to handle the case when A is a row vector
B = [row(:) col(:)].';
Guillaume
Guillaume el 15 de Sept. de 2014
Oh yes, thanks!
I really hate that you can't write simple generic code in matlab because the shape of the output is not always the same.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by