Ich verwende Matlab, um einen Finite-Elemente-Methodencode automatisch zu parametrieren und zu starten. Ich eine Parametertextdatei schreiben, die der Code FEM wird gelesen, und dann für den FEM-Code aufrufe mit:Matlab "System" -Befehl blockiert
[status,cmdout]=system(['FEMApp ' current_folder '\MyFile']);
Manchmal wird der FEM-App, nicht in der Lage ihre Aufgabe zu erfüllen, und in dem Befehl eine Fehlermeldung senden Fenster. Bis jetzt konnte ich die Fehlermeldung in cmdout erkennen und mit dem nächsten Parametersatz fortfahren.
Aus einem unbekannten Grund hat sich der Systembefehl anders zu verhalten: er bleibt scheinbar für immer hängen (Matlab ist immer im Modus "busy"). Habe ich etwas geändert, ohne es zu merken?
Vorerst verwende ich die folgende Lösung:
[status,cmdout]=system(['FEMApp ' current_folder '\MyFile &']);
pause(45)
system(['taskkill' 'FEMProcessus')
Es funktioniert richtig, aber es verlangsamt meine Berechnung eine Menge (~ x5), da Matlab immer 45 secondes auch warten, wenn die Aufgabe abgeschlossen ist in viel weniger Zeit.
Kann jemand die Veränderung im Verhalten von Matlab erklären? Hat jemand eine klügere Arbeit als meine?