Вызовите мемоизованную функцию и результаты кэша
MemoizedFunction объект обеспечивает memoization семантику указателя на функцию и кэш результатов вызова функции. Это имеет тот же синтаксис вызова как указатель на функцию, заданный в Function свойство. Однако MemoizedFunction объект не является указателем на функцию.
В первый раз, когда вы вызываете мемоизованную функцию с определенным набором входных значений, MATLAB® выполняет функцию, заданную Function свойство и кэши результаты. В более поздних вызовах мемоизованной функции с тем же набором входных параметров MATLAB возвращает кэшируемые результаты вместо того, чтобы выполнить функцию снова.
MemoizedFunction объект обеспечивает кэш входных параметров и соответствующих выходных параметров. Когда это вызывается, MATLAB возвращает связанные кэшируемые выходные значения, если следующие условия верны.
Входные параметры численно равны кэшируемым входным параметрам. При сравнении входных значений MATLAB обрабатывает NaNs как равный.
Количество требуемых выходных аргументов совпадает с количеством кэшируемых выходных параметров, сопоставленных с входными параметрами.
Внимание
MemoizedFunction объект не знает об обновлениях базовой функции. Если вы изменяете функцию, сопоставленную с мемоизованной функцией, очистите кэш с clearCache объектная функция.
Создать MemoizedFunction объект, вызовите memoize функция.
memoization функции сопоставлен с функцией ввода а не с MemoizedFunction объект. Поэтому помните о следующем.
Построение нового MemoizedFunction объект к той же функции создает другую ссылку на те же данные. Две переменные, что memoize та же функция совместно используют кэш и значения свойства объекта, такие как размер кэша. В следующем примере, переменных a и b совместно используйте кэш и имейте то же значение для размера кэша.
a = memoize(@svd); b = memoize(@svd);
b (b.clearCache) также очищает кэш для a, и любые другие переменные это memoize svd функция. clearCache MemoizedFunction объектная функция.Присвоение MemoizedFunction объект к новой переменной создает другую ссылку на те же данные. В следующем примере, переменных c и d осуществлять обмен данными.
c = memoize(@svd); d = c;
Очищение переменной не очищает кэш, сопоставленный с функцией ввода. Очистить кэш для MemoizedFunction возразите, что больше не существует в рабочей области, создайте новый MemoizedFunction возразите против той же функции и используйте clearCache функция на новом объекте. В качестве альтернативы можно очистить кэши для всего MemoizedFunction объекты с помощью clearAllMemoizedCaches функция.
clearCache | Очистите кэш для MemoizedFunction объект |
stats | Возвратите кэшируемые значения и статистику для MemoizedFunction объект |