2016-11-07 125 views
0

我有兩個矩陣A和B包含整數值分配給一個類別。我想創建一個表P其中P(i,j)= p(A=i&B=j):意思是說P(1,1)包含A的一個元素爲類別1,並且B的相同元素爲類別1的概率。另外要清楚的是,如果您跨行搜索P,則可以找到A矩陣的類別頻率,如果您在列之間求和P,則可以找到B矩陣的類別頻率。交叉表與頻率的類matlab

使用for-loops很容易執行,但我比較了巨大的矩陣(地圖與土地使用類別),並且它非常慢,正如每個for循環實現應該預期的那樣。

在matlab中是否有內置函數或更簡單的方法來做到這一點?我搜索了很多,但找不到與矩陣有關的東西。提前致謝!

回答

0

我發現了一個解決方案,比for循環該比較逐元素A和B. 例如,5類快至少2.5X:

P=zeros(5) 
for i=1:5 
    for j=1:5 
     P(i,j)= sum(sum((im1==i &im2==j))) /numel(A); 
    end 
end 

,如果有一個更快的方法(建在功能)我會很高興。