相关疑难解决方法(0)

缓存Matlab函数结果到文件

我在Matlab写一个模拟.我最终将运行这个模拟数百次.在每次模拟运行中,都有数百万个模拟周期.在每个循环中,我计算一个非常复杂的函数,需要~0.5秒才能完成.函数输入是一个长位数组(> 1000位) - 这是一个0和的数组1.我认为该位阵列中的一个矩阵01,并为他们中的每一个我仅运行该函数一旦-正如我保存的结果在不同的阵列(RES),并检查比特阵列是在基体中运行的功能的前:

for i=1:1000000000
    %pick a bit array somehow
    [~,indx] = ismember(bit_array,bit_matrix,'rows');
    if indx == 0
        indx = length(results) + 1;
        bit_matrix(indx,:) = bit_array;
        res(indx) = complex_function(bit_array);
    end
    result = res(indx)
    %do something with result
end
Run Code Online (Sandbox Code Playgroud)

我有两个问题,真的:

  1. 有没有更有效的方法来找到矩阵中的行的索引然后'ismember'?

  2. 由于我多次运行模拟,并且我得到的位数有很大的重叠,我想在运行之间缓存矩阵,这样我就不会在相同的位数组上重复计算函数再次.我怎么做?

simulation matlab caching bitstring

3
推荐指数
1
解决办法
1099
查看次数

标签 统计

bitstring ×1

caching ×1

matlab ×1

simulation ×1