1

我正在使用 Matlab 处理地震数据,每一个都假设对应于一个特定的地理点(已知纬度,经度)。目标之一是对地球表面中的点进行分组,这些点被特定半径的 bin 所包围(例如 r=10 度)。垃圾箱是否重叠并不重要。我使用了histr()Matlab 内在函数,但这会输出结果箱的 (lat,long) 中的中心坐标以及箱中包含的数据点的数量。但是,我还想标记数据点,并能够在后续处理中使用这些标记的数据点。我用过的:

lt1=load('midlats.dat');
lg1=load('midlons.dat');
len_lt=length(lt1);
len_lg=length(lg1);
nb=1;
[clats,clons,num,wnum] = histr(lt1,lg1,nb);

其中 nb 定义了每个角度需要多少个 bin。

这是否接近我的目标,或者我完全错过了这张照片???有人遇到过类似的事情吗?任何帮助/意见将不胜感激。

4

1 回答 1

0

这是一个想法 - 您将需要定义一个 bin 边缘向量(两者相同或不同),请参阅以下帮助histc

[nlt, i_lt] = histc(lt1,b_vec1);
[nlg, i_lg] = histc(lg1,b_vec2);

现在,作弊 - 用于sub2indi_lti_lg,您的数据所在的纬度和经度箱的索引转换为单个索引。

sz = [length(i_lt),length(i_lg)];
ind = sub2ind(sz,i_lt,i_lg);

任何相同的点ind都在相同的 lat + lon bin 中。ind然后,您可以通过使用eg等进行索引来选择它们lg1(ind==1)

于 2014-04-09T16:00:50.767 回答