1. 程式人生 > >Matlab繪製三維曲面(以二維高斯函式為例)

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二維高斯圖