Matlab Tricks,二十八—— 笛卡尔积的实现

笛卡尔积在数学上是一种二元关系,笛卡尔积作用的双方是两个集合,作用的结果是一个新的集合

现有两向量:

>> p = [1, 5, 10];
>> q = [.75, .85, .95];

倘若我们想得到如下的二元组(也即对两向量做了一次笛卡尔积)构成的矩阵:

1.0000    0.7500
1.0000    0.8500
1.0000    0.9500
5.0000    0.7500
5.0000    0.8500
5.0000    0.9500
10.0000    0.7500
10.0000    0.8500
10.0000    0.9500

matlab 的方式:

>> [x, y] = meshgrid(p, q);
>> [x(:), y(:)]
...

Cartesian product in MATLAB