MATLAB Answers

0

How to replace rows contain NaN with values from another matrix?

Asked by hanif hamden on 16 May 2019
Latest activity Commented on by hanif hamden on 16 May 2019
A = [728140.500000000 1840.00
728140.541666667 1780.00
728140.583333333 NaN
728140.625000000 NaN
728140.666666667 NaN
728140.708333333 NaN
728140.750000000 NaN
728140.791666667 NaN
728140.833333333 NaN
728140.875000000 NaN
728140.916666667 NaN
728140.958333333 NaN ]
B = [728140.500000000 1863.53
728140.541666667 1830.47
728140.583333333 1802.11
728140.625000000 1782.74
728140.666666667 1779.32
728140.708333333 1803.74
728140.750000000 1868.99
728140.791666667 1981.78
728140.833333333 2137.96
728140.875000000 2318.80
728140.916666667 2492.02
728140.958333333 2621.85 ]
Above is the Matrix A and B where first column of both matrix has the same value.. I need to replace the NaN from matrix A with the values from Matrix B. can anyone help this? should i use ismember function as well?

  0 Comments

Sign in to comment.

Products

1 Answer

Answer by Alex Mcaulley on 16 May 2019
 Accepted Answer

A(isnan(A)) = B(isnan(A))

  3 Comments

thanks. one more i would like to remove all the value data at matrix A before replacing the NaN value with Matrix B.. Example.. before replacing NaN value at matrix A.. row 1 and row 2 need to be removed first..
Do you mean this?
idx = ~isnan(A(:,2));
A(~idx,2) = B(~idx,2);
A(idx,:) = [];

Sign in to comment.