如何计算两个向量的笛卡尔积?

How to calculate the Cartesian product of two vectors?

提问人:Claire 提问时间:9/11/2023 更新时间:9/11/2023 访问量:30

问:

有没有一种有效的方法可以计算 DolphinDB 中两个向量的笛卡尔积?

例如,给定向量 ['aa', 'bb'] 和 ['cc', 'dd'],期望的结果是 ['aacc', 'aadd', 'bbcc', 'bbdd'] 而不考虑顺序。您的建议将不胜感激!

SQL 向量化 卡尔乘积 dolphindb

评论


答:

0赞 Lemonina 9/11/2023 #1
vec1 = ['aa', 'bb'];
vec2 = ['cc', 'dd'];
result = cross(vec1, vec2);

结果将包含['aacc', 'aadd', 'bbcc', 'bbdd']

0赞 M H 9/11/2023 #2

这两个页面指的是同一件事(交叉连接):

https://dolphindb.com/help/SQLStatements/TableJoiners/crossjoin.html?highlight=cartesian

https://dolphindb.com/help/FunctionsandCommands/FunctionReferences/c/cj.html?highlight=cartesian

使用 cj() 的示例

a = table(2010 2011 2012 as year)
b = table(`IBM`C`AAPL as Ticker);
cj(a,b);

结果

year  Ticker
2010  IBM
2010  C
2010  AAPL  
2011  IBM
2011  C
2011  AAPL  
2012  IBM
2012  C
2012  AAPL  

试试这个

a = table(aa bb as x)
b = table(cc dd as y);
cj(a,b);