数组 – 如何从两个向量的元素的所有可能组合中获得单个数组?

我有两个向量:

 x = [1 2 3]; y = [4 5]

我需要一个单独的数组yx,它给出了两个向量元素的一对一组合.这是我到目前为止使用Stackoverflow中的示例尝试的代码.

sets  = {y, x};
[y x] = ndgrid(sets{:});
yx    = [y x]'

这给了我结果:

yx =

 4     5
 4     5
 4     5
 1     1
 2     2
 3     3

鉴于,我期待以下结果:

yx =

 4     1
 4     2
 4     3
 5     1
 5     2
 5     3

拜托,我在这里做错了什么?非常感谢任何帮助/建议.谢谢!

最佳答案
你想要获得的是两个向量的笛卡尔积.
这是一个解决方案:

>> x = [1 2 3]; y = [4 5];

>> [X,Y] = meshgrid(y,x);

>> result = [X(:) Y(:)]
result =

   4   1
   4   2
   4   3
   5   1
   5   2
   5   3

(这也适用于Octave,不需要额外的库)

转载注明原文:数组 – 如何从两个向量的元素的所有可能组合中获得单个数组? - 代码日志