Easy columns merge question

9 views (last 30 days)
012786534
012786534 on 6 Jun 2016
Edited: Image Analyst on 7 Jun 2016
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
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
Azzi Abdelmalek
Azzi Abdelmalek on 6 Jun 2016
Your original question is different. Please edit your question
Azzi Abdelmalek
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)

Sign in to comment.


Image Analyst
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
012786534
012786534 on 6 Jun 2016
Yes, the numbers may be the same. If so, C take the value of A
Image Analyst
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

Sign in to comment.

Categories

Find more on Characters and Strings in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!