Caching resultados da função Matlab para o arquivo

Estou escrevendo uma simulação no Matlab. Acabarei executando esta simulação centenas de vezes. Em cada execução de simulação, existem milhões de ciclos de simulação. Em cada um desses ciclos, calculo uma função muito complexa, que leva~0.5 seg para terminar. A entrada da função é uma matriz de bits longos (> 1000 bits) - que é uma matriz de0 e1. Eu mantenho as matrizes de bits em uma matriz de0 e1, e para cada um deles eu executo a função apenas uma vez - conforme eu salvo o resultado em uma matriz diferente (res) e verifico se a matriz de bits está na matriz antes de executar as funções:

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

Tenho duas perguntas, realmente:

xiste uma maneira mais eficiente de encontrar o índice de uma linha em uma matriz do que 'ismember'

Como eu executo a simulação muitas vezes e há uma grande sobreposição nas matrizes de bits que estou recebendo, quero armazenar em cache a matriz entre as execuções para não recalcular a função nas mesmas matrizes de bits e mais uma vez. Como faço isso

questionAnswers(6)

yourAnswerToTheQuestion