原文地址為: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);
顯示效果圖: