2012-08-29 99 views
2

我想在MATLAB中將三維表面圖放置在地球上。我無法讓它工作。在MATLAB中覆蓋三維地球上的三維表面圖

下面是代碼:

% Sampele Data 
longitude = [1 2 3] 
latitude = [3 2 1] 
elevation = [12 21 13; 15 14 15; 12 16 15] 

% Create Globe 
figure 
axesm('globe') 
gridm('GLineStyle','-','Gcolor',[.8 .7 .6],'Galtitude', .02) 
load coast 
plot3m(lat,long,'k') 
view(3) 
axis off; zoom(2) 

% Overlay Surface Plot 
mesh(longitude,latitude,elevation) 
surfm(longitude,latitude,elevation) 
+0

「什麼」不起作用?什麼是錯誤信息? – AGS

+0

我真的在這一段時間。沒有錯誤信息,但數字扭曲。如果您在命令窗口中加載代​​碼,您會看到。 – user1608954

回答

1

雖然不是很明顯,你的代碼實際上似乎很好地工作。

要查看它,首先刪除線mesh(longitude,latitude,elevation),因爲它沒有繪製經緯度座標。

現在的問題是,surfm(longitude,latitude,elevation)只繪製一個很難發現的小區域。找到它,請註釋掉plot3m(lat,long,'k'),運行腳本並注意地球右半部分的小表面。

爲了證明你的腳本工作,你還可以通過

surfm(lat(1:200),long(1:200), rand(200,200)) 

替換最後一行隨機顏色南極的一部分。

順便說一句,你的最後一行是不是應該讀surfm(latitude,longitude,elevation)

+0

非常感謝這幾條準則。 – user1608954