[討論] 資料分別對緯度與經度平均並使用inpolygo

看板MATLAB作者 (推銷員)時間12年前 (2013/09/23 02:27), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
各位大大好 小弟想請教關於對緯度與經度作平均的問題 並且想請教inpolygon這個指令的用法 小弟寫了一段指令如下 目標是處理一筆深度為1500米的海洋溫鹽資料 我已經將1500米深的所有經、緯度和鹽度、溫度都挑出來 y1=max(Newall2(1,:));%這筆資料的lon最大值 y2=min(Newall2(1,:));%這筆資料的lon最小值 y=y2:0.5:y1;%打算要做每0.5度的平均 lon_intervals=y; number_of_lon_intervals=length(lon_intervals);%這lon資料的長度 x1=max(Newall2(2,:)); x2=min(Newall2(2,:)); lat_intervals=x2:0.5:x1; number_of_lat_intervals=length(lat_intervals); Temp=ones([number_of_lon_intervals,number_of_lat_intervals]).* NaN; Sal=ones([number_of_lon_intervals,number_of_lat_intervals]).* NaN; %先做出溫度和鹽度資料的空矩陣 % 接著是我的loop: for i=1:length(lat_intervals)-1 lat_grid=[lat_intervals(i),lat_intervals(i+1),lat_intervals(i+1), lat_intervals(i)] %這裡是一一畫出一個方格 for j=1:length(lon_intervals)-1 lon_grid=[lon_intervals(j),lon_intervals(j), lon_intervals(j+1),lon_intervals(j+1)];%也畫出一個方格 ind_geo=find(inpolygon(lon2,lat2,lon_grid,lat_grid)==1); %接著用inpolygon 組合起來並找到裡面我原始lon和lat的在那些方格內的資料 % Then you select the data within your grid: Temp(j,i)=nanmean(temp1(ind_geo));%對溫度做平均 Sal(j,i)=nanmean(sal1(ind_geo));%對鹽度做平均 最後結果是一個109*75的NaN矩陣... 我有使用過debug 在ind_geo那個階段就只顯現出一個0*1的矩陣了... 我實在不知道問題出在哪裡... 還懇請各位大大指點! 謝謝! 或者要怎麼 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.8.75.243

09/23 02:35, , 1F
那不就是不在polygon裡面的意思嗎?
09/23 02:35, 1F

09/23 03:12, , 2F
那,要怎麼樣才會到那個polygon裡呢?
09/23 03:12, 2F
文章代碼(AID): #1IFpQICr (MATLAB)