Matrix index replance of non Nan value

1 view (last 30 days)
Nikan Fakhari
Nikan Fakhari on 20 Aug 2021
Answered: Walter Roberson on 20 Aug 2021
Hi there,
I have a matrix
x = [5 6 7;8 9 10; 11 12 NaN]
and another matrix with same as x,
y = [1 4 7;2 5 8; 3 0 9];
and I want to replace y with all the non nan vlaues of X
so for example I want y to be the following:
y = [5 6 9; 8 9 10;11 12 9];
Could anyone please help me with the right command for this?
I appreciate it a lot.
Best,
Nikan

Answers (1)

Walter Roberson
Walter Roberson on 20 Aug 2021
x = [5 6 7;8 9 10; 11 12 NaN]
y = [1 4 7;2 5 8; 3 0 9];
mask = ~isnan(x);
y(mask) = x(mask);
Or you could do
newy = x;
mask = isnan(x);
newy(mask) = y(mask);

Categories

Find more on Operating on Diagonal Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!