How can i put all zeros in the end of the rows in a matrix?

1 vue (au cours des 30 derniers jours)
Bruno Baptista
Bruno Baptista le 5 Déc 2016
i wanto to put all the zero elemets of a matrix to the end of the rows. For example if i have A=[1 0 2 3 0;1 3 0 2 5;0 2 4 0 1] i want it to become A=[1 2 3 0 0;1 3 2 5 0;2 4 1 0 0]
Like, A=[1 0 2 3 0 to A=[1 2 3 0 0
1 3 0 2 5 1 3 2 5 0
0 2 4 0 1] 2 4 1 0 0]
is there any way of doing this?

Réponse acceptée

Bruno Baptista
Bruno Baptista le 5 Déc 2016
Modifié(e) : Bruno Baptista le 5 Déc 2016
A = [matriz];
At = A';
N = length(A);
B = zeros(size(At));
idx = At == 0;
B(~sort(idx)) = At(~idx);
B=B'

Plus de réponses (1)

Jacob Ziesenis
Jacob Ziesenis le 5 Déc 2016
you can do this with the following line:
A(:,end)=0

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by