作者fyq (推销员)
看板MATLAB
标题[讨论] 资料分别对纬度与经度平均并使用inpolygo
时间Mon Sep 23 02:27:28 2013
各位大大好
小弟想请教关於对纬度与经度作平均的问题
并且想请教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
1F:推 sunev:那不就是不在polygon里面的意思吗? 09/23 02:35
2F:→ fyq:那,要怎麽样才会到那个polygon里呢? 09/23 03:12