0

私はMatlabが初めてです。

配列があるとしましょうa = [1:1:1000]

これを 50 の部分に分割する必要があり1-20ます。21-40.... 981-1000.

私はこのようにしようとしています。

E=1000X
a=[1:E]
n=50
d=E/n
b=[]
for i=0:n
   b(i)=a[i:d]
end

しかし、私は結果を得ることができません。

そして、私が取り組んでいる 2 番目の部分は、別の結果に応じて、私の答えが 3 の場合、最初の分割配列にはカウンターが必要であり、+1 である必要があり、答えが 45 の場合、3 番目の分割配列のカウンターは + である必要があります。 1 など、最後にすべてのカウンターのヒストグラムを作成する必要があります。

4

1 に答える 1

1

これらすべてを1 つの関数で実行できます: histc. あなたの状況では:

X = (1:1:1000)';
Edges = (1:20:1000)';
Count = histc(X, Edges);

基本的に には、 で定義されたカテゴリに分類されるCountの要素の数が含まれます。ここで、 は単調に増加するベクトルで、その要素は連続するカテゴリの境界を定義します。より一般的な例は、確率密度、たとえば一様分布を使用して構築することです。XEdgesEdgesX

X = 1000 * rand(1000, 1);

と の仕様をいじってみるXEdges、アイデアが得られるはずです。実際のヒストグラム プロットが必要な場合は、hist関数を調べます。

あなたの質問の 2 番目の部分については、あなたが何を求めているのかよくわかりません。

于 2012-10-21T09:56:09.520 に答える