Cross product of two tables without common key

8 visualizzazioni (ultimi 30 giorni)
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 Commento
Star Strider
Star Strider il 22 Mag 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.

Accedi per commentare.

Risposta accettata

Voss
Voss il 21 Mag 2022
Modificato: Voss il 21 Mag 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 Commenti
Frederick Awuah-Gyasi
Frederick Awuah-Gyasi il 23 Mag 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

Accedi per commentare.

Più risposte (1)

dpb
dpb il 21 Mag 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!

Translated by