Shift data in row when NaNs occurs

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

 采纳的回答

>> 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

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 NaNs 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by