PDA

View Full Version : Funzioni Matlab che richiamano exe dos e ram satura.


rayman2007
02-06-2008, 20:42
Salve ho un grosso problema.

Ho fatto uno script in matlab, poi trasformato in funzione(senza argomenti di output)

Questa funzione effettua un for da 1 a 200, all'interno del for richiama 2 programmini DOS : Learn.exe e classify.exe che effettuano l0addestramento di una rete neurale.
durante il ciclo vado a leggere i risultati da un file di log prodotto dai 2 programmini DOS, e li memorizzo in dei vettori.
Dopodiché realizza 3 grafici(questo dopo i 200 cicli).

Ora ho fatto uno script semplicissimo, composto da 2 cicli innestati all'interno dei quali a seconda delle circostanze richiamano la Funzione spiegata sopra.
In totale la richiamano 116 volte (passandogli 2 parametri differenti).

Il problema è che la RAM (ho 2GB) collassa, in pratica ho monitorato il consumo della ram quando il programma è in esecuzione:
in pratica sono quei 2 programmini DOS (learn e classify) che avviati tramite il matlab col comando ! learn.exe>NULL .... consumano per i loro calcoli molti MB.
Ora dato che questi vengono richiamati 200 volte dalla funzione, e la funzione è richiamata a sua volta 116 volte, la memoria occupata in RAM dai 2 prog DOS non viene liberata.

In matlab ho messo alla fine della funzione : clear all, è dovrebbe liberare la system memory occupata dai dati matlab (sono pochi), mentre la memoria occupata dai prog DOS non viene rilasciata, neanche se arresto tutto e chiudo MAtlab.



scusate per la lunghezza del messaggio, ma esiste il modo di far usare a questi 2 programmini DOS una determinata area di memoria , in modo tale che usino sempre quella forzando il sistema a ripulirla.?
Alla fine della loro esecuzione e me interessano solo i dati riportati in alcuni file TXT che essi producono, ma a quanto pare per generare i risultati hanno bisogno per i loro calcoli di molta ram (30-40MB alla volta) che per mia sfortuna nn viene rilasciata.



Grazie in anticipo per eventuali suggerimenti.