O MATLAB está lento no seu computador ou nos programas que você escreveu no MATLAB?
O MATLAB faz uso intenso de alocação e realocação de memória dinâmica; O redimensionamento da matriz ou da matriz pode ser muito lento e não determinístico; Se uma matriz ou matriz cresce, nova memória é alocada e os dados existentes copiados para a nova memória antes de excluir a cópia antiga. Você pode evitar essa sobrecarga de memória pré-alocando esses arrays: por exemplo, este código:
x = 0;
for k = 2:1000
x(k) = x(k-1) + 5;
end
faz com que x
seja redimensionado em cada iteração e será executado muito lentamente. Por comparação, o seguinte código:
x = zeros(1, 1000);
for k = 2:1000
x(k) = x(k-1) + 5;
end
pré-aloca a matriz para que nenhum redimensionamento ocorra e seja executado consideravelmente mais rápido.
O site do MathWorks tem uma página inteira detalhando esta e outras técnicas de melhoria de desempenho; a página abrange o seguinte:
- Pré-alocar matrizes
- Usar matrizes distribuídas para conjuntos de dados grandes
- Quando possível, substitua por parfor (paralela para)
- Limitando tamanho e complexidade
- Atribuindo a variáveis
- Usando operadores lógicos apropriados
- Sobrecarga de funções incorporadas
- Funções são geralmente mais rápidas que scripts
- Carregar e salvar são mais rápidos que as funções de E / S de arquivos
- Vetorização de Loops
- Evite grandes processos em segundo plano
Note que a solução que você sugeriu é a última na lista do MathWorks, você deve olhar para todos os outros pontos primeiro, a menos que você esteja fazendo algo obviamente com fome de recursos, como rodar uma máquina virtual ou reproduzir vídeo em alta definição ao mesmo tempo Como rodar o MATLAB, olhar para outros processos em execução provavelmente está suando as pequenas coisas.