سؤال

إذا كان لدي مجموعة من البيانات y ومجموعة من الصناديق المتمركزة في x ، فيمكنني استخدام أمر HiST للعثور على عدد كل Y في كل صندوق.

N = hist(Y,X)

ما أود معرفته هو ما إذا كانت هناك وظيفة مدمجة يمكن أن تخبرني بأي صندوق يدخله ، لذلك

[N,I] = histMod(Y,X)

يعني أن y (i == 1) ستعيد كل y في bin 1 ، إلخ.

أعرف كيفية كتابة هذه الوظيفة ، لذلك أنا أتساءل فقط عما إذا كان هناك بالفعل مدمج في Matlab يقوم بذلك.

هل كانت مفيدة؟

المحلول

الوظيفة ذات الصلة histc هل هذا ، لكنه يتطلب منك تحديد حواف الحاوية بدلاً من مراكز الصندوق.

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

حساب الحواف بالنظر إلى Bincenters أمر سهل للغاية. في بطانة واحدة:

N = hist(Y, X);

يصبح

[Nc, Ic] = histc(Y, [-inf X(1:end-1) + diff(X)/2, inf]);

مع NC == N ، بالإضافة إلى صندوق فارغ إضافي في النهاية (بما أنني لا أفترض أي قيمة في Y Matches INF). يرى doc histc.

نصائح أخرى

إذا كان المرء راضيًا عن استخدام حواف الصندوق بدلاً من الصناديق ،

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

يعمل. AAARGH ، MATLAB تعاريف وظيفتك غير بديهية للغاية

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top