Cross product of two tables without common key

8 views (last 30 days)
tables 1
Name
A
B
C
table2
Number Count
1 0
2 0
3 0
4 0
I want
Name Number Count
A 1 0
A 2 0
A 3 0
A 4 0
B 1 0
B 2 0
B 3 0
B 4 0
C 1 0
C 2 0
C 3 0
C 4 0
I tried outer join but since there is not key between the two tables that failed. Any help. Thank you.
  1 Comment
Star Strider
Star Strider on 22 May 2022
This may not be at all relevant, however Three columns (x,y,z) in table, Loop through table for each X plot Y vs Z could tangetially be related to this post.
I have no idea if it is or what the desired results are.

Sign in to comment.

Accepted Answer

Voss
Voss on 21 May 2022
Edited: Voss on 21 May 2022
table1 = table(["A";"B";"C"],'VariableNames',{'Name'})
table1 = 3×1 table
Name ____ "A" "B" "C"
table2 = table([1;2;3;4],[0;0;0;0],'VariableNames',{'Number','Count'})
table2 = 4×2 table
Number Count ______ _____ 1 0 2 0 3 0 4 0
[ii,jj] = meshgrid(1:height(table1),1:height(table2))
ii = 4×3
1 2 3 1 2 3 1 2 3 1 2 3
jj = 4×3
1 1 1 2 2 2 3 3 3 4 4 4
new_table = [table1(ii,:) table2(jj,:)]
new_table = 12×3 table
Name Number Count ____ ______ _____ "A" 1 0 "A" 2 0 "A" 3 0 "A" 4 0 "B" 1 0 "B" 2 0 "B" 3 0 "B" 4 0 "C" 1 0 "C" 2 0 "C" 3 0 "C" 4 0
  2 Comments
Frederick Awuah-Gyasi
Frederick Awuah-Gyasi on 23 May 2022
@_ Worked Perfectly. Thank you so much.
@Star Strider this helped me replace missing data points in out prevous discussion really appreciate all you help.
Thanks @dpb

Sign in to comment.

More Answers (1)

dpb
dpb on 21 May 2022
May be something more exotic, but I'd just build it from the pieces...
tT=[table(reshape(repmat(t1.Name,1,height(t2)).',[],1),'VariableNames',{'Name'}) repmat(t2,height(t1),1)]
tT =
12×3 table
Name Number Count
____ ______ _____
A 1 0
A 2 0
A 3 0
A 4 0
B 1 0
B 2 0
B 3 0
B 4 0
C 1 0
C 2 0
C 3 0
C 4 0
>>

Community Treasure Hunt

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

Start Hunting!