编辑注意:此文件被选为Matlab Central挑选本周
CachedCall可用于将慢速函数调用的结果缓存到磁盘
您可以使用CachedCall调用任意函数。然后会检查
如果您之前已经使用相同的参数进行了相同的调用。如果你
然后它将快速加载先前计算的结果
磁盘缓存而不是再次计算它们。如果没有匹配
调用缓存,然后将计算结果并保存在
缓存。
用法:[A,B,...] = CachedCall(Fun [,Arguments,参数,值])
输入:
有趣:处理应该缓存输出的功能。
参数:一个包含所有参数的单元,应该传递给乐趣。
可选命名参数:
cachefolder:缓存结果的文件夹。默认文件夹
系统临时文件文件夹(请参阅Tempdir)
maxCacheSize:最旧缓存前的缓存大小
结果将被删除。(默认= 3E9)
SaveArguments :(默认= FALSE)可用于保存输入
传递给缓存中的函数的参数
maxage:如果大于maxage,则丢弃缓存 - 单位是几天。
(默认= INF)
标记:可以保存在缓存中的自定义字符串。展示
检查时(默认描述参数内容的字符串)
进一步使用:
* CachedCall清除 - 将清空整个缓存目录。
* cachedcall检查 - 将检查缓存的内容。
* CachedCall Clean - 将删除缓存的过期内容。
过期意味着比maxage或结果更长
一个改变的功能
例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.
示例2:缓存从Web检索数据的结果
Tic.
cachedcall(@URLREAD,'//www.tatmou.com/moler/ncm/longley.dat.')
TOC.
依赖于:Jan Simon的DataHash(包括在下载中)。
如果james tursa安装(不需要),则提高性能
Aslak Grinsted 2015年
Aslak Grinsted(2021)。缓存(//www.tatmou.com/matlabcentral/fileexchange/49949-cachedcall),Matlab中央文件兑换。检索到。