2016-11-07 75 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 

,如果有一个更快的方法(建在功能)我会很高兴。