Non Zero element appear first with keeping the same size of the matrix?
3 views (last 30 days)
Show older comments
Rubel Ahmed
on 5 Nov 2019
Commented: Rubel Ahmed
on 5 Nov 2019
A = [1 0 2 3;2 0 0 5; 3 0 0 1; 0 0 1 5];
How The matrix will be transformed like this (No-zero element will come first, row wise)
A = [1 2 3 0; 2 5 0 0; 3 1 0 0; 1 5 0 0]
0 Comments
Accepted Answer
JESUS DAVID ARIZA ROYETH
on 5 Nov 2019
solution :
A = [1 0 2 3;2 0 0 5; 3 0 0 1; 0 0 1 5];
A(A==0)=nan;
A=sort(A,2);
A(isnan(A))=0;
disp(A)
2 Comments
More Answers (1)
Richard Brown
on 5 Nov 2019
here's a really naive way to do it:
[m, n] = size(A);
for i = 1:m
k = find(A(i, :))
A(i, :) = [A(i, k), zeros(1, n - numel(k))]
end
I'm sure there's a more fancy vectorised method, but this will do the job.
2 Comments
See Also
Categories
Find more on MATLAB Parallel Server in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!