Sem memória no MATLAB

5

Estou tentando executar um script em matlab_2011a, que calcula os mesmos meios para uma climatologia de 50 anos. Quando comecei a rodar o roteiro por todos os anos, funcionou bem até a iteração 20, e então apareceu a mensagem:

Out of memory. Type HELP MEMORY for your options. 

Então usei clear v1 v2 v3 ... para limpar todas as variáveis dentro da função, também usei clear train porque eu vi em outro fórum, e estas com as modificações ou não, eu corro novamente o script (desde a 21ª iteração ), e o resultado é a mesma mensagem, mas curiosamente, por vezes, é executado um ano e depois pára.

Alguma idéia sobre como resolver esse problema ?, o que devo limpar para executar corretamente? (nesta versão matlab não há memória de comando que talvez possa me ajudar).

EDITAR

Solução: Havia uma variável que era muito grande, salvando os resultados de maneira diferente, evitando o erro de falta de memória.

    
por Eric Sánchez 11.11.2012 / 17:35

3 respostas

3

Eu não sou um usuário ávido do MATLAB, mas sugiro que você tente:

File > Preferences > General > Java Heap Memory. 

Depois, você pode aumentar a quantidade de memória além do valor padrão de 196 MB. Espero que isso ajude.

    
por Indian 11.11.2012 / 17:39
0

O gerenciamento de memória é um problema de longa data para o Matlab. A causa mais provável do seu out of memory error é que existe um vazamento de memória. Vazamentos de memória podem ser encontrados, mas encontrá-los é tecnicamente desafiador e demorado.

Para liberar completamente a memória, o Matlab precisa ser reiniciado. Se houver uma maneira de salvar os resultados depois de processar alguns dados, salve os dados e reinicie o Matlab. Recarregue os dados e processe outro outro tipo de dados. Repita até que todos os dados sejam processados. A quantidade de dados a processar deve ser inferior a 20 anos.

Isso está longe de ser elegante e depende de poder salvar e recarregar os dados. Além disso, presumo que o tamanho dos dados em si não é o problema.

    
por Richard Povinelli 11.11.2012 / 19:16
0

Tente isso, funciona bem para mim.

  • Ir para a página inicial - > Ícone de preferência - > Geral - > Memória Java Heap - > Alocar o tamanho da memória que você deseja
  • Na janela Preferência, vá para "Espaço de trabalho" (fora do nível de memória do heap Java) - > Consulte "Limite de tamanho do Matlab Array" Desmarque a opção "Limitar o tamanho máximo do array a uma porcentagem de RAM". Porque você quer estender a memória então não precisamos desse recurso.
  • Feito.
por mrwen 22.03.2017 / 17:11

Tags