对MATLAB中meshgrid的理解 matlab中meshgrid

备注: 这些内容是我在阅读了meshgrid源代码及看了http://zhidao.baidu.com/question/169889793.html?an=0&si=1这个帖子之后的总结。
函数功能:
生成绘制3-D图形所需的网格数据。在计算机中进行绘图操作时,往往需要一些采样点,然后根据这些采样点来绘制出整个图形。在进行3-D绘图操作时,涉及到x、y、z三组数据,而x、y这两组数据可以看做是在Oxy平面内对坐标进行采样得到的坐标对(x,y)。
例如, 要在“3<=x<=5,6<=y<=9,z不限制区间”这个区域内绘制一个3-D图形,如果只需要整数坐标为采样点的话。我们可能需要下面这样
一个坐标构成的矩阵:
(3,9),(4,9),(5,9);
(3,8),(4,8),(5,8);
(3,7),(4,7),(5,7);
(3,6),(4,6),(5,6);
在matlab中我们可以这样描述这个坐标矩阵:
把各个点的x坐标独立出来,得:
3,4,5;
3,4,5;
3,4,5;
3,4,5;
再把各个点的y坐标也独立出来:
9,9,9;
8,8,8;
7,7,7;
6,6,6;
这样对应的x、y结合,便表示了上面的坐标矩阵。
meshgrid就是产生这样两个矩阵,来简化我们的操作。
然后根据(x, y)计算获得z,并绘制出三维图形。
在Matlab命令窗口中键入type meshgrid可以查看该函数的源代码(由此可以理解meshgrid的算法思想), 键入docmeshgrid或者help meshgrid可以获得帮助文档。
语法格式:
[X,Y] = meshgrid(x,y)
上面的描述,我们可以知道,meshgrid返回的两个矩阵X、Y必定是行数、列数相等的,且X、Y的行数都等于输入参数y中元素的总个数,X、Y的列数都等于输入参数x中元素总个数(这个结论可以通过查看meshgrid的源代码得到,可以通过示例程序得到验证)。
[X,Y] = meshgrid(x)
[X,Y,Z] = meshgrid(x,y,z)

程序示例:

示例一:

close all; clear; clc;
x = [3, 4, 5]
y = [6; 7; 8; 9]
[xx, yy] = meshgrid(x, y)

输出:

xx =
345
345
345
345
yy =
666
777
888
999

示例二:

>>
x = [3, 4, 5];
y = [6; 7; 8; 9];
[yy, xx] = meshgrid(y, x)

输出结果:
yy =
6789
6789
6789
xx =
3333
4444
5555

示例三:

function main
close all;clear; clc;
对MATLAB中meshgrid的理解 matlab中meshgrid
M1;M2;
end

function M1
x = rand(3,4);
y = rand(2,3);
size_of_x =size(x)
size_of_y =size(y)
[X, Y] =meshgrid(x, y);
size_of_X =size(X)
size_of_Y =size(Y)
end

function M2
x = rand(3,4, 2);
y = rand(2,3);
size_of_x =size(x)
size_of_y =size(y)
[X, Y] =meshgrid(x, y);
size_of_X =size(X)
size_of_Y =size(Y)
end

输出结果:

size_of_x =
34
size_of_y =
23
size_of_X =
6 12
size_of_Y =
6 12
size_of_x =
342
size_of_y =
23
size_of_X =
6 24
size_of_Y =
6 24

最后, 说一下通过阅读meshgrid的源代码复习一下以前的一些下标操作知识:

>> x = [1 2 3 4]
x =
1234
>> x([1 1 1 1],:)
ans =
1234
1234
1234
1234

就是把x中第1行复制4份。

如果,这个例子不明显,再看个例子:

>> x = [1 2 3 4 5;
6 7 8 9 10;
11 12 13 14 15;
16 17 18 19 20]
x =
12345
6789 10
11121314 15
16171819 20
>> x([4 2], :) % 依次取出x的第4行和第2行
ans =
16171819 20
6789 10
>> x([4 3 2 1], :) % 按行倒置
ans =
16171819 20
11121314 15
6789 10
12345

  

爱华网本文地址 » http://www.aihuau.com/a/25101010/26982.html

更多阅读

食不厌精脍不厌细的理解 食不厌精 烩不厌细

今天读《论语》中“食不厌精,脍不厌细”一段。看了书上的解释,觉得孔子对饮食的要求太高了。又觉得解释似乎并不妥当,于是到网上搜罗,发现对这一段的理解是仁者见仁智者见智。最后还是倾向于下面这篇文章的观点:食物不能只是满足于精细,

谈谈我对“京八条”的理解 谈谈你对spring的理解

1.为什么要出京八条?我认为,任何政策的出台都是有其背景的,北京楼市如此火爆,越演越烈,炒房已经让房地产市场走向了以牟取暴利为目的的一个产业,房子似乎不是拿来住的,而是用于炒来炒去的,背离了我们建房的初衷,到了必须降温的时候了,要让其

我对信息与信号处理的理解(转) 直行信号怎么理解

第一次认识到信号这个概念是在小学自然课上的一个小实验:用两个杯子和一根很长的线远距离聊天。我现在都还记得当时我们几个最先做完的小伙伴得意的表情,像是吃到了最甜的糖果。后来我慢慢知道,其实信号充斥着我周围的每一个角落,电视,空

我对“以人为本”管理理念的理解 企业以人为本管理理念

所谓“以人为本”是强调领导工作要以人为管理工作出发点,强调对人性的理解,尊重人、关心人、爱护人、培养人、教育人,树立以人为中心的管理理念。我对在实际的领导活动之中如何体现“以人为本”的思考是:关注人的需求,凝聚人的智慧,激发

张楚《蚂蚁蚂蚁》,我对蚂蚁蚂蚁歌词的理解 蚂蚁蚂蚁 张楚歌词

自从那天,听到了张楚的《蚂蚁蚂蚁》这首歌,就会想起自己,其实,它更能打动我的,或许就是“梦想”两个字了。那个年代充满了太多的躁动和叛逆,张楚正式生活在了一个大变革时代,充满了对未来的憧憬,即使像蚂蚁一样的草根,也同样的有着自己执着,坚

声明:《对MATLAB中meshgrid的理解 matlab中meshgrid》为网友灑落壹地的陽光分享!如侵犯到您的合法权益请联系我们删除