MATLAB に 161*32 の行列 (「indpic」というラベルが付いています) があり、行に表示される特定の数値の頻度を見つけようとしています。したがって、値ごとに各行を個別に分析する必要があると思いますが、これを行う方法については非常に確信が持てません (私は MATLAB の初心者です)。これはまた、私がループなどで信じられないほど役に立たないことも意味します。
どんな助けでも大歓迎です!
特定の数字が各行に表示される回数を数えたい場合は、次のようにします。
sum(indpic == val, 2)
どこindpic
にあなたの行列(画像など)があり、val
数えたい値です。
説明: 各要素と値の等価性をチェックすると、カウントされた値の位置に「1」があるブール行列が生成されます。各行を合計します (つまり、2番目val
の次元に沿って合計すると、目的の列ベクトルが得られます。各要素は、対応する行で繰り返される回数に等しくなります)。
画像内で各値が繰り返される回数を数えたい場合、これはヒストグラムと呼ばれ、コマンドを使用してhistc
それを達成できます。例えば:
histc(indpic, 1:256)
1 から 256 までの各値が image に出現する回数をカウントしますindpic
。
このような、
sum(indpic(rownum,:) == 7)
明らかに 7 を何にでも変更します。
あなたはただ書くことができます
length(find(indpic(row_num,:)==some_value))
そして、行列「indpic」の「row_num」行の「some_value」に等しい要素の数が得られます