[問題] 使用Matlab讀txt檔畫3D圖

看板MATLAB作者 (只是過客)時間11年前 (2014/01/22 00:05), 編輯推噓3(307)
留言10則, 1人參與, 最新討論串1/2 (看更多)
小弟因為研究的需求,需將量測的天線場型data用Matlab畫出 data為三個一維矩陣,如下所示 Theta Phi Directivity 0 0 -1.275 5 0 0.3321 10 0 1.572 : 180 0 -0.9896 0 5 -1.275 5 5 2.509 : 180 5 -0.9896 : 180 355 -0.9896 完整data連結:http://ppt.cc/305a 照道理說畫出來的圖形應該會長這樣:http://ppt.cc/YHSp 只不過,小弟參照一些網路上的程式碼,畫了許久 圖形卻始終長得不太一樣:http://ppt.cc/rdAc 不曉得是哪些步驟或邏輯有錯 底下附上小弟的程式碼,麻煩版上的大大幫忙指點迷津 謝謝 ---- clear all close all clc A = load('farfield.txt'); theta = A(:,1); phi = A(:,2); r = A(:,3); theta = theta*pi/180; phi = phi*pi/180; theta = meshgrid(theta); %這三行meshgrid,總覺得哪裡怪怪的,不太明白和 phi = meshgrid(phi); %[theta, phi] = meshgrid(theta, phi)的差別 r = meshgrid(r); %而r = meshgrid(r)把同一column上每點值大小變一樣 %似乎不太對 [x, y, z] = sph2cart(phi, theta, r); mesh(x,y,z) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.129.19.17 ※ 編輯: vacuousrock 來自: 220.129.19.17 (01/22 00:08)

01/22 02:31, , 1F
你讀進來的資料是一堆相同的theta有不同的phi在變化
01/22 02:31, 1F

01/22 02:32, , 2F
而要用meshgrid(theta,phi)用意是讓兩個不同長度的向量
01/22 02:32, 2F

01/22 02:32, , 3F
出來size一樣
01/22 02:32, 3F

01/22 02:34, , 4F
簡單來說 人家要用meshgrid的話是本來他的theta和phi分別
01/22 02:34, 4F

01/22 02:35, , 5F
是像類似這樣: theta=0:1:180; phi=0:1:360 總之本來兩個
01/22 02:35, 5F

01/22 02:36, , 6F
size不同 但是meshgrid之後size會一樣
01/22 02:36, 6F

01/22 02:37, , 7F
theta=0:5:180; phi=0:5:355這樣 而r應該要是37*72的矩陣
01/22 02:37, 7F

01/22 02:38, , 8F
另外我是沒有mesh畫過 一般天線這種圖都是用surf畫吧?
01/22 02:38, 8F

01/22 02:52, , 9F
還有,你的directivity是單位已經是dBi了嗎?
01/22 02:52, 9F

01/22 02:57, , 10F
一般都不會用dBi畫場型圖吧~要取回去
01/22 02:57, 10F
文章代碼(AID): #1Itfgwm8 (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1Itfgwm8 (MATLAB)