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);
显示效果图:
作者: pzxbc
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。