Lanciare programmi esterni dentro un'iterazione [RISOLTO]

di il
2 risposte

Lanciare programmi esterni dentro un'iterazione [RISOLTO]

Ciao a tutti!
Negli ultimi giorni mi sono un po' piantato su un problema che non mi è mai sorto, perchè matlab ha sempre fatto il suo dovere.
A volte capita di dover scrivere dei file .m in cui, tra le varie istruzioni, è necessario lanciare dei programmi esterni.
Esempio: in questi giorni per un'esercitazione dovevamo lanciare tante volte un programma di analisi srtutturale scritto in fortran che studia la deformazione di una semplice piastra in composito, variando però ad ogni simulazione parametri come il numero di elementi in cui scomporla (fittezza mesh), oppure l'ordine di interpolazione ecc.

ho pensato a una soluzione del genere:

for param1=1:N1
for param2=1:N2
for param3=1:N3
compila il file (preinput) che serve all'eseguibile fortran (mul20k.exe)
lancia l'eseguibile (che capisce da solo che deve usare preinput perchè è programmato per farlo)
acquisisce i risultati e li salva in maniera appropriata

end
end
end

per lanciare l'eseguibile ho scritto questa istruzione:

!C:\Documents and settings\Greg\Desktop\Mul2\Debug\Mul2ok.exe

e lui funziona, perchè poi sul prompt di matlab riporta le operazioni fatte e i file result sono corretti, ma dopo il primo ciclo for esce dal ciclo e non rilancia l'eseguibile con il nuovo file.
Può essere dovuto al fatto che lanciando l'eseguibile manualmente da fortran, finito di calcolare, chiede di premere un tasto per continuare?
Ci sarà un modo per fargli capire che deve spegnersi?
Ho provato a mettere

!C:\Documents and settings\Greg\Desktop\Mul2\Debug\Mul2ok.exe &
pensando che la & lo facesse partire in back ground, ma non lo fa, anzi...apre il prompt di Dos...

2 Risposte

  • Re: Lanciare programmi esterni dentro un'iterazione [RISOLTO]

    Greg! ha scritto:


    e lui funziona, perchè poi sul prompt di matlab riporta le operazioni fatte e i file result sono corretti, ma dopo il primo ciclo for esce dal ciclo e non rilancia l'eseguibile con il nuovo file.
    Meglio correggermi: non è al prmo ciclo for che si pianta, ma ala prima iterazione.
    i=1, j=1, k=1- -----> esegue mul20k.exe ma poi non va a i=1, j=1, k=2 , ma esce!
  • Re: Lanciare programmi esterni dentro un'iterazione [RISOLTO]

    Risolto!
    Il mio amico, senza volerlo, aveva cancellato i vettori in cui erano contenuti i valori da asociare alle 4 variabili, per cui alla prima iterazione usciva perchè non aveva il valore successivo!

    Esempio:
    valore=[1 2 3 4 8 23 45]
    for i=1:7
    val=valore(1,i)
    end

    Mancando il vettore valore si piantava!!!!

    Ora funziona!
Devi accedere o registrarti per scrivere nel forum
2 risposte