Hi,
I have a 5 x 5 matrix with the 2 zeros in each row. How can I delete the nonzero elements from each row?
Any help would be appreciated. Thanks,
DB

 Respuesta aceptada

Walter Roberson
Walter Roberson el 17 de Oct. de 2017
YourNewMatrix = zeros( size(YourMatrix,1), 2 );
After deleting all the non-zero elements of each row, only zeros are going to be left. You might as well construct an all-zero matrix directly.

1 comentario

Cedric
Cedric el 17 de Oct. de 2017
Ah! I had not read the question well enough ;)

Iniciar sesión para comentar.

Más respuestas (1)

Cedric
Cedric el 17 de Oct. de 2017
Editada: Cedric el 17 de Oct. de 2017
Here is one way:
>> A
A =
0 0 5 5 4
1 0 1 3 0
4 2 0 0 3
5 5 0 0 3
0 3 1 0 1
>> [~, ~, v] = find( A.' ) ;
>> B = reshape( v, 3, [] ).'
B =
5 5 4
1 1 3
4 2 3
5 5 3
3 1 1
.. and I don't know if you posted another delete question that was pretty close an hour ago or if it was someone else, but an answer was:
C = max((A == permute(B(:,1),[3,2,1])) .* permute(1:size(B,1), [1,3,2]), [], 3)
for
A = [2 3 4; 4 5 6; 7 8 9] ;
B = [7 5; 3 4; 4 3; 8 4; 9 4] ;

1 comentario

Cedric
Cedric el 18 de Oct. de 2017
Actually if you read again your question Dan, Walter gave you the correct answer.

Iniciar sesión para comentar.

Categorías

Etiquetas

Preguntada:

el 17 de Oct. de 2017

Comentada:

el 18 de Oct. de 2017

Community Treasure Hunt

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

Start Hunting!

Translated by