2016-11-07 8 views
0

カテゴリに割り当てられた整数値を含む2つの行列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

私は5つのカテゴリー、forループ例えば要素単位AとB を比較するよりも少なくとも2.5倍高速である解決策を見つけた:さらに高速な方法が(存在する場合

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

組み込み関数)私は非常に満足しています。

関連する問題