Easy columns merge question
Show older comments
Hi all, I have an easy merge question.Let's say I have 2 columns that look like this: A = [1 NaN 3 NaN 5 6 ...] and B = [NaN 2 NaN 4 5 6 ...]. Now, I want to merge them so I get C = [1 2 3 4 5 6 ...]. Any ideas? Thanks all!
Answers (2)
Azzi Abdelmalek
on 6 Jun 2016
Edited: Azzi Abdelmalek
on 6 Jun 2016
A = [1 NaN 3 NaN 5 6]
B= [NaN 2 NaN 4 5 6]
C=unique([A B])
C(isnan(C))=[]
3 Comments
012786534
on 6 Jun 2016
Azzi Abdelmalek
on 6 Jun 2016
Your original question is different. Please edit your question
Azzi Abdelmalek
on 6 Jun 2016
A = [1 NaN NaN 4 5 NaN],
B = [1 2 NaN NaN 5 NaN]
i1=isnan(A)
i2=~isnan(B)
C=A
C(i1&i2)=B(i1&i2)
Image Analyst
on 6 Jun 2016
Try this:
C = A; % Initialize
% Replace any nan's with B
C(isnan(C)) = B(isnan(C))
3 Comments
Image Analyst
on 6 Jun 2016
Will you ever have A and B have different numbers in the same row? If so, which value does C take on: the value from A or the value from B?
012786534
on 6 Jun 2016
Image Analyst
on 7 Jun 2016
Edited: Image Analyst
on 7 Jun 2016
Then my code works.
It works even if you meant "Yes, the numbers may be different. If so, C take the value of A"
If you wanted B numbers in preference to A, then initialize to B instead of A.
A = [1 NaN NaN 4 5 NaN]
B = [1 2 NaN NaN 5 NaN]
C = A; % Initialize
% Replace any nan's with B
C(isnan(C)) = B(isnan(C))
C =
1 2 NaN 4 5 NaN
Categories
Find more on NaNs 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!