У меня есть следующий код отрезал который работает, но невероятно медленно:накапливались массив в Matlab
bps = [5; 10; 15; 20]
src = ['10.0.0.1'; '10.0.0.2'; '10.0.0.1'; '10.0.0.2']
uniqueSrc = unique(src);
sumBps = [];
for i=1:length(uniqueSrc)
indy=find(ismember(src,uniqueSrc(i)));
sumBps = [sumBps; sum(bps(indy))];
end
uniqueSrc = ['10.0.0.1'; '10.0.0.2']
sumBps = [20; 30]
ЦСИ массив ячеек, содержащий IP-адреса в то время как один IP может происходить несколько раз. Он считывается из файла с текстом и% s. bps содержит целые числа.
Мне нужно суммировать все целые числа в bps, принадлежащие одному и тому же IP-адресу в src. Соответствие соответствует индексам. Таким образом, src (1) является IP-адресом bps (1) и т. Д.
Результатом должно быть соответствие IP-адресов сумме соответствующих значений бит. Таким образом, uniqueSrc (1) - это IP, который имеет sumBps (1), который является суммой всех значений bps, принадлежащих определенному IP.
Хотя мой код, безусловно, работает, он очень неэффективен, как мне кажется, и мне интересно, какой будет знаменитый однострочный матлаб для решения этой проблемы.
Заранее благодарен!
Редактировать: Добавлен пример ввода и вывода.
Post небольшой пример ввода и требуемый выходной –
вход будет хорошо. Как вы храните свои IP-адреса? – eigenchris