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 オブジェクトとして指定します。

ヒント

  • 同じ関数をメモ化する 2 つの変数は、キャッシュおよびオブジェクト プロパティ値 (キャッシュ サイズなど) を共有します。次の例では、変数 ab はキャッシュを共有し、キャッシュ サイズが同じ値です。

    a = memoize(@svd);
    b = memoize(@svd);
    b (b.clearCache) のキャッシュをクリアすると、a のキャッシュ、および関数 svd をメモ化するその他の変数のキャッシュもクリアされます。

  • 変数をクリアしても、その入力関数に関連付けられたキャッシュはクリアされません。ワークスペースに存在しなくなった MemoizedFunction オブジェクトのキャッシュをクリアするには、同じ関数に新しい MemoizedFunction オブジェクトを作成して、その新しいオブジェクトに関数 clearCache を使用します。あるいは、関数 clearAllMemoizedCaches を使用して、すべての MemoizedFunction オブジェクトのキャッシュをクリアできます。

バージョン履歴

R2017a で導入

参考

関数

オブジェクト