гистограмма с нормализацией в каждом бине (Matlab) - PullRequest
0 голосов
/ 08 мая 2020

У меня есть два массива

A = rand(40,1)
B = rand(40,1)

, и я пытаюсь получить гистограмму для A, скажем, с 10 ячейками, т.е.

[count,center] = hist(A,10)

Моя проблема в том, что для каждого bin из A, мне нужно разделить на сумму элементов B, которые имеют те же индексы, что и A, например, если записи 1 и 5 из A попали в первую корзину гистограмма A, мне нужно нормализовать центр бункера на сумму записей 1 и 5 массива B. Если может быть эффективный способ определить соответствие между индексами в A и соответствующей ячейкой гистограммы, тогда может ли это помочь?

Спасибо

1 Ответ

0 голосов
/ 08 мая 2020

Чтобы определить, в какие бункеры попадают данные, я рекомендую перейти к функции histogram, поскольку она даст вам фактические границы. Мой приведенный ниже код MATLAB добавит вторую строку к A, с которой значение первой строки принадлежит

A = randi(20,[1 15])

X = histogram(A,10)

% trim most right hand edge
leftEdge = X.BinEdges(1:end-1)

% initialize bin index
A(2,:) = 0


for k1 = 1:length(leftEdge)
    A(2,:) = A(2,:) + (A(1,:) >= leftEdge(k1));
end

disp(A)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...