2014-04-09 59 views
1

我正在使用Matlab來處理地震數據,這些數據中的每一個假定對應於特定的地理點(已知lat,long)。其中一個目標是將地球表面上由特定半徑(例如r = 10度)的分箱包圍的點分組。箱子是否重疊無關緊要。 我已經使用了histr() Matlab內部函數,但是這會輸出結果箱的(lat,long)中心座標以及箱中包含的數據點的數量。但是,我還想標記數據點,並能夠在後續處理中使用這些標記的數據點。 我所用:如何在Matlab中輸入地理數據並輸出包含在每個bin中的數據點

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定義你每度角多少箱需要。

這是否接近我的目標或我完全錯過了圖片? 有人遇到過類似的東西嗎? 任何幫助/意見將不勝感激。

+0

你必須分別對經緯度做它,但'histc'也可以返回你的數據落入哪個bin的索引,所以你可以跟蹤哪個bin在哪個值。 – nkjt

回答

0

這裏有一個想法 - 你需要定義倉的邊緣(或者兩者相同或不同)的載體,見histc幫助:

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

現在,作弊 - 用sub2ind轉換i_lti_lg,將您的數據所在的經度和緯度索引存入單個索引。

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

任何與ind相同的點都在同一個緯度+長度箱中。然後您可以通過索引ind(例如lg1(ind==1)等。

+0

我一直在使用'histc()'處理它,但是,這並不把緯度看作一對經度,而是把它看作單個的值。因此,在這種情況下使用的'histc()'將幫助我們分別跟蹤lt1,lg1。感謝您的反饋,但它給了我一些想法,但我還沒有遠... – Mononoke

+0

這就是爲什麼'sub2ind'部分,將它們配對。 – nkjt

相關問題