meshgrid 函數(shù)用來生成網(wǎng)格矩陣,可以是二維網(wǎng)格矩陣。 exp1_1:生成二維網(wǎng)格,用法為:[x y]=meshgrid(a b); % a 和b是一維數(shù)組,如a=[1 2 3]; b= [2 3 4]; 則生成的 X 和 Y 都是為 3X3 維的矩陣, >> [x y]=meshgrid(a,b) x = 1 2 3 1 2 3 1 2
meshgrid是MATLAB中用于生成網(wǎng)格采樣點的函數(shù)。在使用MATLAB進(jìn)行3-D圖形繪制方面以及畫矢量圖方面有著廣泛的應(yīng)用。
方法
如下圖所示,該圖畫出了平面坐標(biāo)上的12點。這12點的坐標(biāo)很容易辨識出來,
下面以墨西哥草帽為例,說明meshgrid命令使用方法。 xi=-10:0.51:10;yi=-10:0.51:10; [x,y]=meshgrid(xi,yi); z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2); mesh(x,y,z);
啟動matlab,主界面如圖所示,在命令窗口輸入以下代碼??梢钥吹皆撁钶敵隽藘蓚€矩陣分別是x與y。其中的x就是上圖點的橫坐標(biāo)值,y就是點的縱坐標(biāo)值。
meshgrid是生成網(wǎng)格空間; 由x、y坐標(biāo)軸上的點生成平面的交叉點 如x是1、2、3;y是1、2、3; meshgrid后,就是9個交叉點,(1,1),(1,2),(1,3),(2,1),(2,2)
正確的閱讀順序是從左到右,從上到下。對每個矩陣按照列來閱讀,比如首先是x矩陣的第一列與y矩陣的第一列,取出它們的第一個元素就是點(0,0),取出第二個元素就是(0,1),依次是(0,2)、(0,3)。分別對應(yīng)了上圖的第一列點。后面的以此類推。
meshgrid(x,y)產(chǎn)生兩個矩陣,第一個矩陣是由x作為行向量組成,第二個向量由y作為列向量組成 meshgrid(x,x)=meshgrid(x),即也產(chǎn)生兩個矩陣。 比如 x=1:1:4,則x=[1 2 3 4] 那么生成的兩個矩陣分別是 [1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4] 和 [1 1
下面結(jié)合剛才所學(xué),來畫一個三維圖形。代碼如下圖所示,首先在平面上產(chǎn)生一個從-2到2的區(qū)間。然后產(chǎn)生在該區(qū)間的z軸坐標(biāo)值,最后畫出該三維圖形。
-8:.5:8表示產(chǎn)生-8到8之間一組間隔0.5的數(shù) [a,b]=meshgrid(-8:.5:8),就表示x,y軸都是這些數(shù)組成的網(wǎng)格,即從一維擴(kuò)充到二維了。 -8和8決定了圖像的范圍,0.5決定了曲面網(wǎng)格的大小或者說光滑程度
最終得的圖形如下所示。選擇此處,還可以隨意拖動,從不同角度觀看該圖形。
用mesh畫三維圖,先要meshgrid,就是將xoy平面用你定義的x,y向量網(wǎng)格化,之后對每一個得到的點求其對應(yīng)的函數(shù)值,最后用mesh將函數(shù)圖像做出來,你如果還有不清楚的地方,可以在command window 下敲“doc mesh”或是“doc meshgrid”。 meshz是繪制
擴(kuò)展閱讀,以下內(nèi)容您可能還感興趣。
matlab中mesh和surf有什么區(qū)別
一、指代不同
1、mesh:指MESH equation平衡級分離過程的數(shù)學(xué)模型。
2、surf:是一個穩(wěn)健的圖像識別和描述百算法。
二、特點不同
1、mesh:各平衡級的每一組分物料度平衡方程、相平衡方程和各平衡級的組分分率歸 一化方程、熱平衡方程構(gòu)成。
2、surf:法在適中的條件下完成兩幅圖像問中物體的匹配基本實現(xiàn)了實時處理,其快速的基礎(chǔ)實際上只有一個積分圖像haar求導(dǎo)。
三、用處不同
1、mesh:平衡級分離過程的數(shù)學(xué)模型,由各平衡級的每一組分答物回料平衡方 程(M方程)、相平衡方程和各平衡級的組分分率歸 一化方程(S方程)、熱平衡方程(H方程)構(gòu)成。
2、surf:可被用于計算機(jī)視覺任務(wù),如物件識別和3D重構(gòu)。近似的2D 離散小波變換響應(yīng)和并且有效地利用了積分圖。
參考資料來答源:百度百科-MESH方程
參考資料來源:百度百科-Surf
matlab用meshgrid和surface畫出函數(shù)
很明顯,這是球面的方程。為避免使用直角坐來標(biāo)表達(dá)會導(dǎo)致的多值問題,可用球面坐標(biāo)生源成數(shù)據(jù),然后再轉(zhuǎn)換到直角坐標(biāo)。w未給定,任取一個值zd。
參考代碼:
w = 5;r = sqrt(w);
n = 30;
theta = (-n:2:n)/n * pi;
phi = (-n:2:n)/n * pi/2;
[theta,phi] = meshgrid(theta,phi);
cosphi = cos(phi); %cosphi(1) = 0; cosphi(n+1) = 0;
sintheta = sin(theta); %sintheta(1) = 0; sintheta(n+1) = 0;
x = r*cosphi.*cos(theta);
y = r*cosphi.*sintheta;
z = r*sin(phi);
surface(x,y,z)
view(3)
axis equal
grid on
matlab初學(xué),生成MESH之前一般要先執(zhí)行[xx,yy]=meshgrid(x,y)命令,然后
[xx,yy]=meshgrid(x,y)命令,是生成一個百平面網(wǎng)格坐標(biāo)矩陣,可以得到平面網(wǎng)格坐標(biāo)點,再利用度zz與xx,yy的二元函數(shù)關(guān)系,計算出第三維坐標(biāo)zz,這樣就可以內(nèi)利用mesh(xx,yy,zz)命令畫出三維立容體圖了。至于字母的選擇不一定用xx,yy,zz用別的也可以,如用大寫字母X,Y,Z更簡單。
meshgrid和ndgrid的區(qū)別及用法
問題講的很詳細(xì),我就有信心解決了。呵呵!
其實,對于2D,3D使用meshgrid和ndgrid都可以,但要注意:
[X1,X2,X3] = NDGRID(x1,x2,x3)<=>[X2,X1,X3] = MESHGRID(x2,x1,x3)
即x和y軸要反向。為何呢?幫助說的很清楚:因為NDGRID適用于n維空間,而meshgrid適用于笛卡爾空間。
所以"ppt上特意寫到必須用ndgrid"是不對的。
meshgrid和ndgrid的用法不同之處在于:2D、3D都可以使用(區(qū)別是x軸,y軸的轉(zhuǎn)換),但對于4D、5D...只能e799bee5baa631333262363737使用ndgrid.
順便回答一下你沒問,但很多人問我的問題:為什么要使用meshgrid?
matlab使用矩陣的方式進(jìn)行運算,對于2D而言,如果采樣10個點(指x,y軸),那么對于x=第一個采樣點,反映到矩陣就是10個,即不管y是哪個值,x的第一采樣點保持不變;對y是同理。因此,2D產(chǎn)生的x和y都是兩維矩陣。
最后給你一個實例,說明兩者在這里是通用的:
x0=-3:.6:3;
y0=-2:.4:2;
[x,y]=ndgrid(x0,y0);
[Y,X]=meshgrid(y0,x0);
z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y);
Z=(X.^2-2*X).*exp(-X.^2-Y.^2-X.*Y);
sp=csapi({x0,y0},z);
SP=csapi({x0,y0},Z);
subplot(221),fnplt(sp);
subplot(222),fnplt(SP);
matlab:meshgrid函數(shù)在三維繪圖中的作用,舉例說明
例如知z=(x^2+y^道2)^3, 其中專-1<=x<=1,-2<=y<=2 畫曲屬面
[x,y]=meshgrid(-1:0.01:1,-2:0.02:2);
z=(x.^2+y.^2).^3;
mesh(x,y,z)
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com