WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Auf die Dos Box warten

 

Tobi aus Hannover

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.02.2009, 12:54     Titel: Auf die Dos Box warten
  Antworten mit Zitat      
Hallo zusammen!

Danke für euer Forum und die toll Hilfe die ich durch die vielen Beiträge im Stillen schon bekam.

Zu diesem Problem konnte ich leider noch keine Lösung finden. Es ist wie folgt:

Ich habe ein m-file zur Verarbeitung von Messdaten erstellt. Mit dem Befehl winopen (abc_1) führe ich eine Programm, dass in der Dos-Box abläuft aus und halte Matlab mit waitfor(push_the_button) an. Ich muss auf abc_1 warten, da es Daten produziert, die anschliessend mit Matlab weiter verarbeitet werden sollen. push_the_button ist nur ein gui mit einem 'Weiter-Knopf'.

Anschliessend muss ich ein weiteres Programm in einer Dos-Box ausführen. (efg_2) Bisher habe ich hier ebenfalls winopen(efg_2) und waitfor(push_the_button) genutzt, da auch hier auf die Daten zur Weiterverarbeitung gewartet werden muss. Diese Variante ist eher unangenehm, da das Programm in meinem Skript zwischen 10 und 20 mal gestartet wird und ich nun immer wie ein Laboräffchen vor dem Bildschirm sitze und einen 'Weiter-Knopf' drücken muss. Eine Pause von x-Sekunden kommt leider nicht in Frage, da die Ausführung des Programmes unterschiedlich lange dauert.

Ich möchte Matlab gern warten lassen, bis das Programm in der Dos-Box fertig ist. Kann ich den Effekt nutzen, dass sich die Dos-Box nach Beendigung des Programms automatisch schliesst?

Ich bin für alle Anregungen, die mich nicht mehr alle paar Minuten auf einen 'Weiter-Knopf' warten lassen, sehr dankbar.

Bis dahin drücke ich mal fleissig weiter...

Vielen Dank für die Hilfe,
Tobias


outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 17.02.2009, 21:22     Titel:
  Antworten mit Zitat      
Versuche statt WINOPEN das Programm mit dem DOS-Befehl zu starten
mehr in der Hilfe.

>> help dos


MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
Tobi aus Hannover

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.03.2009, 13:16     Titel: Verzeichnisstruktur
  Antworten mit Zitat      
Hoi!

Ich habe probiert den Dos Befehl zu nutzen, scheitere aber anscheinendan meiner Verzeichnisstruktur.


Meine bisherige Version funktioniert wie folgt. Ich lasse Matlab mit dem winopen Befehl die Datei ausführen. Anschliessend warte ich 5 Sekunden, dann soll Matlab versuchen die Datei zu löschen. Falls das Programm noch läuft funktioniert das ja nicht. Dann soll er gucken ob die Datei noch vorhanden ist. Leider kenne ich keinen besseren Befehl als fopen dafür. (Bitte einen Tip wie es besser geht.) Ist die Datei beendet und damit nicht mehr im Eingriff kann die Datei gelöscht werden und fopen gibt eine -1 zurück. Die Schleife in der diese Routine abläuft wird geöffnet und das Programm schreitet voran.

Code:
winopen([Stamm_Pfad,variierender_Pfad,Dos_Datei]);
    schranke = 1;
    pause(2*zeit);
    warning off;
    while schranke == 1
        pause(5);
        delete  ([Stamm_Pfad,variierender_Pfad,Dos_Datei]);
        fid_ext = fopen([Stamm_Pfad,variierender_Pfad,Dos_Datei]);
        if fid_ext < 0
            schranke = 0;
        else
            zeit = zeit+1;
        end
        fclose('all');
    end
    warning on;


Geschickt finde ich diese Variante nicht, ich würde es als quick-and-dirty beschreiben. Etwas besseres fiel mir nicht ein.

Wenn ich den wie von outsider vorgeschlagenen Dos-Befehl nutze rächt sich meine Verzeichnisstruktur, da einer der Ordner ...\Dos Dateien\dos-datei.exe heisst und Matlab sagt das die Datei ...\Dos nicht gefunden werden kann. Das Leerzeichen kann ich leider nicht mehr aus dem Verzeichnispfad entfernen.

Kann ich Matlab die Datei trotz des anscheinend für Matlab nicht einzulesenden Pfades aufrufen?

Ich bin für jeden Tip sehr dankbar.

Schöne Grüsse,
Tobias
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 05.03.2009, 13:30     Titel:
  Antworten mit Zitat      
Moin,

ohne es probiert zu haben, versuch mal folgendes:
Code:
dos('"C:\Pfad mit Leerzeichen\dosdatei.exe"');


Zumindest funktioniert das im Terminal-Window...

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.03.2009, 14:01     Titel:
  Antworten mit Zitat      
DOS ist tot - die Kommandozeile im Windows ist auch Windows, sieht nur aus wie DOS ;)

Leerzeichen in Verzeichnisnamen kann man grundsätzlich dadurch ermöglichen, dass man den Namen in 'Hochkommas' setzt.

Was das Prüfen auf Existenz angeht:

Code:

while exist('dateiname', 'file')
   mach_was();
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.