MATLAB Answers

0

Shift data in row when NaNs occurs

Asked by Márcia Vicente on 22 Aug 2019 at 9:41
Latest activity Commented on by Márcia Vicente on 22 Aug 2019 at 10:14
I have a Cell array 15x112 that contains NaNs.
I want to shift the data in the rows, everytime I get a NaN.
% I have for instance:
0.30 NaN 0.24 0.26 0.67 0.37
0.49 0.35 0.55 NaN 0.43 0.54 . . .
% and I want to get:
0.30 0.24 0.26 0.67 0.37
0.49 0.35 0.55 0.43 0.54 . . .
Is there an easy way to do it?
Thanks

  0 Comments

Sign in to comment.

1 Answer

Answer by Stephen Cobeldick on 22 Aug 2019 at 9:52
 Accepted Answer

>> M = [0.30,NaN,0.24,0.26,0.67,0.37;0.49,0.35,0.55,NaN,0.43,0.54]
M =
0.30000 NaN 0.24000 0.26000 0.67000 0.37000
0.49000 0.35000 0.55000 NaN 0.43000 0.54000
>> [~,X] = sort(isnan(M),2);
>> for k = 1:size(M,1), M(k,:) = M(k,X(k,:)); end
>> M
M =
0.30000 0.24000 0.26000 0.67000 0.37000 NaN
0.49000 0.35000 0.55000 0.43000 0.54000 NaN

  1 Comment

It works perfectly!
Thank you so much

Sign in to comment.