Вопрос

Если у меня есть набор данных y, и набор мусорных барабанов, сосредоточенных на X, я могу использовать команду HIST, чтобы найти, сколько из каждого Y находятся в каждом корзине.

N = hist(Y,X)

То, что я хотел бы знать, это если есть встроенная функция, которая может сказать мне, на какую корзину каждый уйдет, так

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

будет означать, что y (i == 1) вернет бы все Y в Bin 1 и т. Д.

Я знаю, как написать эту функцию, поэтому я задаюсь вопросом, только если в Matlab есть уже встроенный в Matlab.

Это было полезно?

Решение

Связанная функция histc Соответствует ли это, но это требует, чтобы вы определили ребра мусорное ведро вместо корпоративных центров.

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

Вычислительные края, данные Binkenters тоже легко. В одном вкладыке:

N = hist(Y, X);

становится

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

с nc == n, плюс один дополнительный пустой корзину в конце (так как я не принимаю значение в y matchs inf). Видеть doc histc.

Другие советы

Если кто-то удовлетворен использованием бин-краев вместо мусорных барабанов,

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

работает. AAARGH, MATLAB Ваши определения функций настолько неразрывно

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top