我有两个向量:
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,不需要额外的库)
相关文章
转载注明原文:数组 – 如何从两个向量的元素的所有可能组合中获得单个数组? - 代码日志