Clear Filters
Clear Filters

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

6 views (last 30 days)
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?

Accepted Answer

Bruno Baptista
Bruno Baptista on 5 Dec 2016
Edited: Bruno Baptista on 5 Dec 2016
A = [matriz];
At = A';
N = length(A);
B = zeros(size(At));
idx = At == 0;
B(~sort(idx)) = At(~idx);
B=B'

More Answers (1)

Jacob Ziesenis
Jacob Ziesenis on 5 Dec 2016
you can do this with the following line:
A(:,end)=0

Categories

Find more on Dynamic System Models in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!