-1

配列内の要素のカウントについて簡単な質問があります。配列はこのようなものです

B = [1 0 1 0 0 -1; 1 1 1 0 -1 -1; 0 1 -1 0 0 1]

この配列から、列数と別の行数と呼ばれる配列構造を作成したいと考えています。効率の悪いプロセスであっても、配列構造を作りたいと思っています。

基本的に、各列の配列と合計を調べて、これらの値が発生する合計回数を行します。たとえば、最初の行の場合、次の出力が必要です。

Row Counts
-1 0 1

 1 3 2 

前もって感謝します

4

2 に答える 2

4

これにはhist関数を使用できます。

fprintf('Row counts\n');
disp([-1 0 1])
fprintf('\n')
for row = 1:3
    disp(hist(m(i,:),3));
end

収量

Row counts
-1      0      1

 1      3      2
 2      1      3
 1      3      2  
于 2012-10-02T09:14:57.460 に答える
3

あなたの質問を完全には理解していませんが、Matlab 配列内の要素の出現回数を数えたい場合は、次のようにすることができます。

% Find value 3 in array A
A =[ 1 4 5 3 3 1 2 4 2 3 ];
count = sum( A == 3 )

比較するとA==3、Matlab は配列を 0 と 1 で埋めます。これは、指定された位置にAある要素が探していた要素を持つ 2 番目の配列を意味します。したがって、配列内の値を累積することにより、出現をカウントできますA==3

編集:次のようなさまざまなディメンションにアクセスできます。

A = [ 1 2 3 4; 1 2 3 4; 1 2 3 4  ];  % 3rows x 4columns matrix
count1 = sum( A(:,1) == 2 );         % count occurrences in the first column
count2 = sum( A(:,3) == 2 );         % '                      ' third column
count3 = sum( A(2,:) == 2 );         % '                      ' second row

そのような特定の行または列に常にアクセスします。

于 2012-10-02T09:08:07.583 に答える