Matlab绘制三维曲面(以二维高斯函数为例)

  寒假学习了一下Python下的NumPy和pymatlab,感觉不是很容易上手。来学校之后,决定继续看完数字图像处理一书。还是想按照上学期的模式,边看边实现书中的算法。上学期看的时候,是用C语言实现的,发现写程序太耗时间了,所以决定还是学习下Matlab吧(寒假莫有学会Python中的那些库应用。。。)
  经过两天的学习,终于看完了一本关于Matlab的基础书。对于Matlab有了一个基本的了解,感觉Matlab最大的优势在于能够快速的将你数据可视化出来,不管对于科学计算还是图像处理,这都很重要,因为它能让你有一个直观的认识。

  下面就贴一下我绘制的第一个三维曲面图(二维高斯函数)

  代码: 

% 绘制二维高斯曲面
% 公式: p(z) = exp(-(z-u)^2/(2*d^2)/(sqrt(2*pi)*d)
% x y 变量
X = 0 : 1 : 50;
Y = 0 : 1: 50;

% 方差
d02= 25;
% 均值(25, 25)
Z = zeros(51, 51);
for row = 1 : 1 : 51
for col = 1 : 1 : 51
Z(row, col) = (X(row) - 25) .* (X(row)-25) + (Y(col) - 25) .* (Y(col) - 25);
end
end

Z = -Z/(2*d02);

Z = exp(Z) / (sqrt(2*pi) * sqrt(d02));
% 显示高斯曲面
surf(X, Y, Z);

  显示效果图:

Matlab二维高斯图

 

posted @ 2012-02-14 18:28  pzxbc  阅读(52436)  评论(2编辑  收藏  举报