質問

私は、データYのセットと、Xを中心としたビンのセットを持っている場合は、

は、私が各ビンであるか、各Yの多くを見つけるためにHISTコマンドを使用することができます。

N = hist(Y,X)
各Yは、に入ったビンを私に伝えることができ、その関数に建てられている場合は、

は、私が知りたいのですがどのようなものですので、

[N,I] = histMod(Y,X)
意味しているY(I == 1)などのビン1、内のすべてのYを返します。

私は、組み込みのMATLABでこれを行うこと。

がすでに存在する場合、私は唯一の疑問に思って、この関数を記述する方法を知っています
役に立ちましたか?

解決

関連機能histcはこれを行いますが、それは代わりにビンセンターのビンのエッジを定義する必要があります。

Y = rand(1, 10);
edges = .1:.1:1;
[N, I] = histc(Y, edges);

bincenters与えられたエッジを計算することは、あまりにも簡単です。 1つのライナーでます:

N = hist(Y, X);

タグになり
[Nc, Ic] = histc(Y, [-inf X(1:end-1) + diff(X)/2, inf]);
Ncの== Nと

、プラス端に1つの余分な空のビン(IはYに値がINF一致しないと仮定しているため)。 doc histcを参照してください。

他のヒント

一つは代わりのビンのビンのエッジを使用して満足している場合、

[N,bin] = histc(y,binedges)

作品。 Aaargh、あなたの関数の定義は非常に非直観

あるMATLAB
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top