前面兩期我們介紹了plot函數的繪圖作用,這一期我們繼續學習三維曲面的Matlab繪制函數。
以馬鞍面為例,其方程為:
z = x²/a²-y²/b²
在指令行視窗輸入:
>> x=-2:0.1:2;
>> y=-2:0.1:2;
意為從-2到2每隔0.1記錄一個數,生成一個數組,0.1是步長。記得後面加“;”,不即時輸出結果。
>> [X,Y]=meshgrid(x,y);
meshgrid的作用是生成一個網格矩陣,從工作區的變量屬性可以看出,X和Y都是41×41的矩陣。

為什麼要生成矩陣呢?因為對于曲面方程z = x²/a²-y²/b²而言,每一個x都會對應一列y值,同時每一個y也會對應一列x值。那麼,z坐标方向的值的數量應該是x和y兩個數組維數的乘積,是以是41×41。
>> Z=X.^2/3-Y.^2/3;
注意這裡不是X^2,而是X.^2,因為X是一個矩陣,是以有一點和沒一點是有差別的。
X^2是矩陣之間的乘法(X必須是方陣),X.^2則是矩陣中每個元素做平方運算。
接下來就可以用surf函數繪制曲面了,輸入:
>> surf(X,Y,Z);
>> axis equal;
>> view(-30,20);
得到結果如下
曲面上的網格映射到XY平面就是[X,Y],也就是meshgrid函數生成的矩陣;view的作用則是調整圖檔的觀察視角。(如果x和y數組的步長越小,生成的網格就會越密。曲面看上去就會一片黑,放大後才能看清網格)
繼續輸入:
>> shading interp
(除去網格)
>> colorbar
(添加顔色标尺)
曲面的配色可以用colormap調節,最常見的是colormap('jet'),輸入後結果如下:
如果不熟悉MATLAB中的函數用法,可以用help函數(一個很有用的函數)查詢,如:
可以看到colormap内置的配色方式有很多種:
比如colormap('copper'),結果如下:
今天就講這麼多,在後面的學習過程中,我們還會經常用到矩陣的思維。不要害怕矩陣這兩個字,數學不好也不用擔心。小編負責搞定數學,你們隻需要熟悉語言就行了。
像這一期提到的函數,meshgrid、surf、colormap等,關看字面意思就能猜個八九不離十,需要記的隻是函數後面用到哪些參數。
現在,Matlab的面紗才剛揭開一角而已,更多有意思的功能還在等我們去發掘。