Nota dell'editore: This file was selected as MATLAB Central Pick of the Week
CACHEDCALL can be used to cache the results of slow function calls to disk
  
  You can call an arbitrary function using cachedcall. It will then check 
  if you have made the same call with the same arguments before. If you
  have then it will quickly load the previously computed results from the
  disk cache rather than calculating them again. If there are no matching
  calls in the cache, then the results will be calculated and saved in the
  cache.
 
  USAGE: [a,b,...]=cachedcall(fun[,Arguments,parameter,value])
 
  INPUTS: 
     fun: handle to function whose outputs should be cached.
     arguments: a cell with all the arguments that should be passed to fun.
     
  Optional Named Parameters:
    CacheFolder: the folder where the results are cached. The default folder
                 is the system temporary files folder (see tempdir)
    MaxCacheSize: The maximum size of the cache before oldest cached
                 results will be deleted. (default=3e9)
    SaveArguments: (default=false) this can be used to also save the input
                 arguments passed to the function in the cache
    MaxAge:      discards cache if older than maxage - units are days.
                 (default=inf)
    Tag:         A custom string that can be saved in the cache. displayed
                 when inspecting (default a string describing contents of Arguments)
 
  Further usage:
    * cachedcall clear   - will empty the entire cache directory.
    * cachedcall inspect - will inspect the contents of the cache.
    * cachedcall clean   - will delete expired contents of the cache.
                           Expired means older than MaxAge or the results
                           of a function that has changed 
 
  Example 1: 
     x=1e14+(1:50);
     tic,isp1=isprime(x); normalcalltime=toc
     tic,isp2=cachedcall(@isprime,x); firstcachedcalltime=toc
     tic,isp3=cachedcall(@isprime,x); secondcachedcalltime=toc
 
  Example 2: cache the results of retrieving data from the web
     tic
     cachedcall(@urlread,'https://www.mathworks.com/moler/ncm/longley.dat')
     toc
  
 
  Relies on: DataHash by Jan Simon (included in download). 
  Improved performance if TypeCastX by James Tursa installed (not required). 
 
  Aslak Grinsted 2015
Cita come
Aslak Grinsted (2025). cachedcall (https://it.mathworks.com/matlabcentral/fileexchange/49949-cachedcall), MATLAB Central File Exchange. Recuperato .
Compatibilità della release di MATLAB
Compatibilità della piattaforma
Windows macOS LinuxCategorie
Tag
Riconoscimenti
Ispirato da: typecast and typecastx C-mex functions, cache_results, DataHash
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Scopri Live Editor
Crea script con codice, output e testo formattato in un unico documento eseguibile.
| Versione | Pubblicato | Note della release | |
|---|---|---|---|
| 1.5.0.0 | Updated to include newest version of DataHash  | 
          ||
| 1.4.0.0 | Introduced maxage parameter  | 
          ||
| 1.3.0.0 | wrote a better explanation of what it does.  | 
          ||
| 1.2.0.0 | improved description / improved nargout handling / changed datahash to include filedate & filesize in the hash of function_handles.  | 
          ||
| 1.1.0.0 | * Improved inspect command with links
  | 
          ||
| 1.0.0.0 | 
