Arhn - архитектура программирования

Matlab: я хочу суммировать данные подсчета, когда в один и тот же день происходит несколько подсчетов

У меня есть вектор дней, когда организм завершает развитие, а также соответствующие им количества организмов, завершающих развитие в сутки. Все организмы начинают развиваться в разные дни, однако организмы разного возраста могут завершить развитие в один и тот же день.

День завершения

22

23

23

23

24

Число завершено
124
12
345
7
231

Моя проблема заключается в том, как суммировать все организмы, которые завершаются в один и тот же день. Это не проблема, если есть только два последовательных дня завершения, которые совпадают: я просто добавляю «числа_завершенных (i) к числам_завершенных (i-1)». Однако, если три группы организмов завершаются в один и тот же день (например, день 23 выше), сумма второго и третьего «дня» перезаписывает сумму первых двух дней. Есть ли у кого-нибудь предложения о том, как это сделать?

01.05.2013

Ответы:


1

Предполагая, что вы хотите добавить «Выполненные числа», соответствующие 23-му дню (т. е. 2-я, 3-я и 4-я записи), вы можете использовать функцию find, чтобы индексировать, где в векторе «Завершение дня» они встречаются, а затем сообщить MATLAB чтобы добавить эти записи вектора «Числа завершены».

Я реализовал это как:
completion_day = [ 22 23 23 23 24]; % defining your variables
numbers_completed = [ 124 12 345 7 231]; % defining your variables
idx = find(completion_day == 23); % find the location of completion day 23
sum(numbers_completed(idx)) % return the sum of those 3 numbers

01.05.2013

2

Вы можете пропустить find и просто использовать логическое индексирование, если ваши векторы имеют одинаковый размер. Это более короткий код и, вероятно, более быстрый.

completionDay = [22 23 23 23 24];
numbersCompleted = [124 12 345 7 231];
sumCompleted = sum(numbersCompleted(completionDay == 23));

Вы можете перебирать уникальные дни завершения с помощью следующего и получать общее количество, созданное каждый день
uniqueDays = unique(completionDays);
for i=1:length(uniqueDays)
sumCompleted(i) = sum(numbersCompleted(completionDay == uniqueDays(i)));
end

01.05.2013
  • Мне нравится эта «уникальная» функция. Однако есть одна проблема, которая постоянно возникает с этими параметрами. День завершения рассчитывается только для каждого «внешнего цикла». то есть: есть самый внутренний часовой цикл, внешний цикл «день», а затем еще один цикл «k» снаружи, в котором все проверяется, например. достигнуто завершение или нет. В результате программа не может сразу проверить, повторяются ли дни выполнения. Он может только проверять каждый раз, чтобы увидеть, совпадает ли новый день с тем, что было в векторе накануне. Спасибо за вашу помощь 04.06.2013
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..