meshgrid的介绍
meshgrid:二维和三维网格
[X,Y] = meshgrid(x,y) 基于向量 x 和 y 中包含的坐标返回二维网格坐标。X 是一个矩阵,每一行是 x 的一个副本;Y 也是一个矩阵,每一列是 y 的一个副本。坐标 X 和 Y 表示的网格有 length(y) 个行和 length(x) 个列。
以f(x,y)=Asin(u0x+v0y)为例
程序为:
function f= twodsin1 (A, u0, v0, M, N)
f= zeros(M,N);
for c=1:N
v0y=v0*(c-1);
for r=1:M
u0x=u0*(r-1);
f(r,c)=A*sin(u0x+v0y);
end
end
在for循环之前观察预分配步骤,f=zeros(M,N)。我们使用time来了解该函数创建一幅大小为512512像素的图像需要花多长时间,因此在命令符窗口输入
timeit(@() twodsin1(1, 1/(4pi), 1/(4pi), 512, 512))
输出结果为ans=
0.0172
(如图二所示)没有预分配时,运行该函数约慢了42倍。
我们可以使用imshow的自动确定范围的语法(【】)来显示结果图像
再次在命令窗口输入
f=timeit(@() twodsin2(1, 1/(4pi), 1/(4pi), 512, 512));
imshow(f,[])
则显示结果
向量化说明和函数meshgrid的介绍
最新推荐文章于 2024-04-21 20:05:16 发布