How to align multiple matrices based on the first column values?
1 view (last 30 days)
Show older comments
Here is an example
A = [1,4;2,6;2,7;3,5;3,6;5,2];
B = [2,5;4,6;4,7;5,3];
I want the output to be like (3 columns): (combining the 2nd column of A and B based on their 1st column values)
1 4 Na
2 6 5
2 7 5
3 5 Na
3 6 Na
4 Na 6
4 Na 7
5 2 3
But in reality I have more than 2 datasets that I want to reorganize and combine like the example showing before. Thanks
0 Comments
Accepted Answer
Guillaume
on 18 Mar 2019
The simplest way is convert your matrices to a table, which may make sense anyway considering that it looks like the columns of your matrices have different meaning. Then simply outerjoin the two tables. e.g:
A = [1,4;2,6;2,7;3,5;3,6;5,2];
B = [2,5;4,6;4,7;5,3];
tA = array2table(A, 'VariableNames', {'Key', 'ValA'});
tB = array2table(B, 'VariableNames', {'Key', 'ValB'});
tC = outerjoin(tA, tB, 'MergeKeys', true)
For multiple tables, repeat the join in a loop.
2 Comments
More Answers (0)
See Also
Categories
Find more on Shifting and Sorting 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!