Aufruf einer software von Matlab

Die Eingabeaufforderung funktioniert gut bei allen Respekt den Betrieb der software sowie die Erstellung von berichten und output-Dateien. Zum erzeugen einer ouput-Datei mit dem gewünschten Ergebnis führen, haben wir zum ausführen der ausführbaren Datei des Programms, die über eine parameter-Datei. Zum Beispiel, wenn ich waren für die Implementierung dieser Schritte in der Eingabeaufforderung, es wäre so:

path\report.exe” –f Report.rwdo Report.rwo

Die Ausgabe-Datei-Bericht.rwo, diese Datei enthält die variable exportiert werden.

Nun zum implementieren dieses in Matlab, unten ist ein kleines script was eine wesentliche, was ich versuche zu erreichen. Es ruft die software für jeden Lauf und extrahiert die Daten.

for nr=1:NREAL

      dlmwrite(file.INC,file(:,nr),delimiter,\n); % Writes the data file for each run

       system('"path\file.dat"');    % calls software
       system('"path\Report.rwd" –o "path\Report.rwo"'); % calls report

      [a,b]=textread(‘"path\Report.rwo".rwo,%f\t%f’); % Reads the data and store it in the variable b

end

Also ich habe zwei Probleme:

1) Wenn ich dieses Skript in Matlab, es generiert keine Ausgabe Datei-Bericht.rwo. Folglich, es gibt einen Fehler, wenn er die Zeile erreicht, die mit "textread" - Funktion, wegen des Fehlens der Datei.

2) Wenn Matlab Anrufe Bericht (.rwd-Datei), es fordert mich zu drücken Sie die EINGABETASTE, oder geben Sie 'q' zum beenden. Wenn angenommen, es gibt Hunderte von Dateien, zu laufen, dann für jede Datei würde ich aufgefordert werden, drücken Sie die EINGABETASTE, um fortzufahren. Die folgende Zeile bewirkt, dass die Eingabeaufforderung:

system('"path\Report.rwd" –o "path\Report.rwo"'); % Calls report

ÄLTEREN EDIT: Es gibt 2 updates zu meinem problem wie folgt:

Update 1: Es scheint, dass Teil 2 von meinem problem oben wurde gelöst, indem Jacob. Es ist in Ordnung, für einen Lauf. Aber das endgültige Ergebnis wird erst bestätigt, wenn ich in der Lage bin zu laufen, mein ganzes Programm, das beinhaltet, mit Hunderten von Dateien.

Update 2: kann ich die software ausführen und generieren Sie die Ausgabe-Datei mittels Eingabeaufforderung wie folgt:

**path\mx200810.exe” –f file.dat**
  • Dieser Befehl liest den Bericht parameter-Datei und erzeugt die Ausgabe-Datei:

    "path\report.exe" –f " - Bericht.rwd –o Melden.rwo

LETZTE ÄNDERUNG:

1) ich bin in der Lage, die software ausführen, vermeiden Sie die Eingabeaufforderung drücken Sie die EINGABETASTE, und generieren Sie die Ausgabe-Datei mit Hilfe von Matlab durch die folgenden Befehle:

system('report.exe /f Report.rwd /o Report.rwo')
system('mx200810.exe -f file.dat')

Allerdings war ich in der Lage, es zu tun, nur nach dem kopieren meine erforderlich .exe-und .dll-Dateien in den gleichen Ordner wo ich meine .dat-Datei. Also ich bin mit den .m-Datei über die gleichen Ordner, wo ich alle diese Dateien.

2) es ist Aber immer noch eine Fehlermeldung im Matlab-Kommando-Fenster, welches sagt:

"...STOP: Unable to open the following file as data file:
              'file.dat'
              Check path name for spaces, special character or a total length greater than 256 characters

              Cannot find data file named 'file.dat'

Date and Time of End of Run: .....

ans = 0"
InformationsquelleAutor | 2010-07-06
Schreibe einen Kommentar