Main Content

clearCache

清除 MemoizedFunction 对象的缓存

说明

示例

clearCache(mfcn) 可清除 MemoizedFunction 对象的缓存。

函数的储存与输入函数关联,与 MemoizedFunction 对象无关联。因此,清除变量并不会清除与输入函数关联的缓存。

MemoizedFunction 对象并不知道基础函数的更新。如果您修改与储存函数关联的函数,可使用 clearCache 清除缓存。

示例

全部折叠

sin 函数创建一个储存函数对象,并多次调用它。

mf = memoize(@sin);
a = mf(0);
b = mf(pi/2);
c = mf(0);

查看该对象的统计信息。

mf.stats.Cache
ans = struct with fields:
         Inputs: {{1x1 cell}  {1x1 cell}}
        Nargout: [1 1]
        Outputs: {{1x1 cell}  {1x1 cell}}
       HitCount: [1 0]
      TotalHits: 1
    TotalMisses: 2

清除储存函数对象缓存,并再次查看统计信息。

mf.clearCache
mf.stats.Cache
ans = struct with fields:
         Inputs: {}
        Nargout: []
        Outputs: {}
       HitCount: []
      TotalHits: 0
    TotalMisses: 0

输入参数

全部折叠

具有储存语义的函数,指定为 MemoizedFunction 对象。

提示

  • 储存同一个函数的两个变量可共享缓存和对象属性值,如缓存大小。在以下示例中,变量 ab 共享缓存并具有相同的缓存大小值。

    a = memoize(@svd);
    b = memoize(@svd);
    清除 b 的缓存 (b.clearCache) 也将清除 a 的缓存以及储存 svd 函数的其他任何变量。

  • 清除变量并不会清除与输入函数关联的缓存。要清除工作区中不再存在的 MemoizedFunction 对象的缓存,请为同一个函数创建一个新的 MemoizedFunction 对象,然后对新对象使用 clearCache 函数。您也可以使用 clearAllMemoizedCaches 函数清除所有 MemoizedFunction 对象的缓存。

版本历史记录

在 R2017a 中推出