AnyLogic предлагает ряд функций для сбора статистики по элементам коллекции. Эти функции определены в классе UtilitiesCollection и являются глобальными (доступными из любой части модельного кода). Любую функцию из списка ниже можно вызвать, просто напечатав ее имя без префикса с именем популяции: count( people, p -> p.income > 10000 );
Функция | Описание |
---|---|
int count(collection, condition) |
Подсчитывает число элементов заданной коллекции, удовлетворяющих заданному условию. Примеры: count(people, p -> p.income > 10000); В этом примере мы ведем подсчет элементов коллекции people, доход income которых превышает 10000. В качестве первого аргумента функции мы указываем имя коллекции, относительно которой будем выполнять итерацию. В качестве второго аргумента, мы указываем условие, которое будет проверяться для каждого элемента. В условии мы сначала указываем локальную переменную (в нашем случае она называется p, но может называться как угодно), которую можем использовать для обращения к элементу, проверяемому в данный момент. После этого мы вставляем Java оператор ARROW -> (он состоит из двух символов) и определяем условие (содержащее локальную переменную p): p.income>10000. Функция count() выполняет итерацию по каждому элементу коллекции people и проверяет доход income для каждого элемента. Если уровень дохода отдельно взятого элемента превышает 10000 (результат вычисления заданного условия условие равен true), мы считаем этот элемент. count(people, p -> p.sex == MALE && p.age >= 18); В этом примере мы проверяем два условия (используем логический оператор AND &&, чтобы указать AnyLogic, что оба условия должны быть выполнены: и первое, и второе) и считаем только те элементы, которые удовлетворяют обоим условиям. Чтобы получить общее количество элементов, находящихся в данный момент в коллекции, необходимо вызвать функцию коллекции size(). Эта функция принадлежит коллекции people, поэтому вызывать ее нужно следующим образом: people.size(); |
Функция | Описание |
---|---|
double average(collection, value) |
Возвращает среднее значение в коллекции. Пример: average(people, p -> p.income); Здесь мы вычисляем средний доход income в коллекции people. |
double averageWhere(collection, value, condition) |
Возвращает среднее арифметическое значений среди элементов коллекции, удовлетворяющих заданному условию. Пример: average(people, p -> p.income, p -> p.age > 18 ); Здесь мы вычисляем средний доход income у элементов старше 18 лет. Первый аргумент функции задает коллекцию people, второй определяет значение value (мы будет считать среднее значение value для всех элементов коллекции people), а третьим аргументом является условие: мы будем вычислять среднее значение только для тех элементов коллекции, которые этому условию удовлетворяют.
Обратите внимание, что мы снова задаем локальную переменную p до того, как описать условие.
|
Функция | Описание |
---|---|
double max(collection, value) | Возвращает максимальное значение в заданной коллекции. |
double maxWhere(collection, value, condition) |
Возвращает максимальное значение в среди элементов коллекции, которые удовлетворяют заданному условию. Примеры: maxWhere(people, p -> p.income); В этом примере мы получаем максимальный доход income всех элементов коллекции. maxWhere(people, p -> p.income, p -> p.sex == FEMALE); В этом примере мы получаем максимальный доход income всех элементов женского пола в коллекции people. |
double min(collection, value) | Возвращает минимальное значение среди элементов коллекции. |
double minWhere(collection, value, condition) | Возвращает минимальное значение среди элементов коллекции, которые удовлетворяют заданному условию. |
Функция | Описание |
---|---|
double sum(collection, value) |
Возвращает сумму значений в заданной коллекции. Пример: sum(people, p -> p.income ); В этом примере мы вычисляем общий доход income всех элементов коллекции people. |
double sumWhere(collection, value, condition) |
Возвращает сумму значений в элементов заданной коллекции, которые удовлетворяют заданному условию. Пример: sumWhere(people, p -> p.income, p -> p.age > 18); В этом примере мы вычисляем общий доход income взрослых (элементов старше 18 лет). |
-
Как мы можем улучшить эту статью?
-