Matlab繪制透明平面(二元函數)


一、需求來源

  對空間結構聚類,恰好是圓台,找到了上下底面的方程,所以畫圖。

二、需求解決

2.1 繪制平面

x = linspace(0,5,100);
y = linspace(0,4,100);
z = 2.*repmat(x,100,1) + 8.*repmat(y,100,1);
surf(x,y,z);

  

  第一需要說明的是,x是0到5,分成100分,注意分就是個數,用linspace最好,不要x = 0:5/99:5(中間分子的5是 (5 -0 )得來的,分成100分不是要除以99么,是的,a(n) = a(n-1 ) + (n-1)*d,求得就是d。)。

  第二是x是m個,y是n個,那么z應該要是m*n個,所以一般先

[X,Y] = meshgrid(x,y);

  查看結果發現,X只是x安航擴展了m次,同理Y,那么我直接repmat就好了,注意是

repmat(x,m,1);
repmat(y,n,1);

  第三我原來以為直接用repmat不會有網格,看圖發現依然有;第三個參數是1,不是m和n,而是1,因為把x、y分別看做一個整體。

2.2 平面透明

x = linspace(0,5,100);
y = linspace(0,4,100);
z = 2.*repmat(x,100,1) + 8.*repmat(y,100,1);
surf(x,y,z);
hold on;
alpha(.3);
shading interp

  

  首先是alpha函數設置透明度,但是網格還有,那么加上shading interp。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM