MATLAB内置函数之meshgrid()

今天学了一个很牛的MATLAB内置函数——meshgrid()。其语法如下:
[X, Y] = meshgrid(c, r)
c 和 r 都是一维数组,X和Y 都是二维数组,规模是一样但是内容不一样。X和Y的规模是这样的:以 c 的长度作为列数,以 r 的长度作为行数。X的内容是这样的:X的每一列都是同一元素,与 c 对应的列数下标的元素一致;Y的内容是这样的:Y的每一行都是同一元素,与 r 对应的行数下标的元素一致。不好懂,直接举个例子:

c = [1, 3];
r = [2, 4, 6];
[X, Y] = meshgrid(c, r);
% 结果如下:
X = [1, 3;    Y = [2, 2;
     1, 3;         4, 4;
     1, 3]         6, 6]

好了讲清楚了,可能有同学就会问,哪里牛了,就是一个很难懂而且感觉没什么用的函数。第一感觉确实如此,先不谈它的作用,先来看看一张图片:
图片
一张很普通的图片,甚至画的有点丑。但是仔细观察,如果将所有坐标的行和列拆开,所有行形成一个二维数组,所有列形成一个二维数组,那么就是这样的:
在这里插入图片描述
有没有感觉很熟悉?没错!这和上面meshgrid()函数生成的两个数组的形式是一样的!要么所有行相同,要么所有列相同。所以meshgrid()函数可以用来生成需要坐标参与运算的二维数组。再看代码:

[X, Y] = meshgrid(0:2, 0:2);
% 结果如下:
X = [0, 1, 2;    Y = [0, 0, 0;
     0, 1, 2;         1, 1, 1;
     0, 1, 2]         2, 2, 2]

不费吹灰之力就生成了两个与坐标有关的二维数组!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值