how can i remove efficiently nan values from columns without deleting the column itself ?

1 view (last 30 days)
for ex :
A = 1 2 3
nan 4 nan
nan nan 5
4 5 6
required output
A = 1 2 3
4 4 5
5 6
  1 Comment
James Tursa
James Tursa on 21 Oct 2016
Edited: James Tursa on 21 Oct 2016
Your posted matrix result is not rectangular. You can't have this in a numeric matrix. Is this really what you want for an output or is this a typo? I.e., do you really want the resulting columns to potentially have different numbers of elements? (In which case maybe a cell array would be what you want).

Sign in to comment.

Answers (1)

Andrei Bobrov
Andrei Bobrov on 21 Oct 2016
i0 = ~isnan(A);
ii = sort(i0,'descend');
out = nan(size(A));
out(ii)=A(i0);

Tags

Community Treasure Hunt

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

Start Hunting!