文章目录

前言

利用matlab的函数完成笛卡尔积的求取。

方法

a = [1,2,3];
b = [4,5,6];
[x,y] = meshgrid(a,b);
Cartesian_product = [x(:),y(:)];

解释

1、meshgrid生成矩阵的二维网格

设a宽度为m,b宽度为n,则会以a横着向下复制n次,以b的转置竖着向右复制m次,例如:

a = [1,2];
b = [3,4,5];
[x,y] = meshgrid(a,b);

运行结果:
x =
     1     2
     1     2
     1     2
y =
     3     3
     4     4
     5     5

2、x(:)将x的数据按列排成一列

所有的元素会按照列的顺序从左到右排成一个一维列向量,例如

x = [1,2;3,4];
x(:)

运行结果:
ans =
     1
     3
     2
     4

3、将两个列向量合并成矩阵,变成了完美的笛卡尔积。


转载请注明出处http://www.bewindoweb.com/158.html | 三颗豆子
分享许可方式知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议
重大发现:转载注明原文网址的同学刚买了彩票就中奖,刚写完代码就跑通,刚转身就遇到了真爱。
你可能还会喜欢
具体问题具体杠