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

Übergabe von Variablen bei dos Befehl

 

riverlove
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 26.01.09
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 28.01.2009, 16:29     Titel: Übergabe von Variablen bei dos Befehl
  Antworten mit Zitat      
Hallo,
lese schon seit ein paar Monaten immer eifrig mit. Nun habe ich selber eine Frage..sicher relativ einfach zu beantworten!

Ich benutze den "dos" Befehl oder den !operator in Matlab um eine exe aufzurufen, und dieser Übergabevariablen mitzugeben.

Bsp:
dos('prog\testprog.exe 1.0 4 4 199 2 ./desparo < temp/crossval.txt');
bzw
!prog\testprog.exe 1.0 4 4 199 2 ./desparo < temp/crossval.txt
dies funktioniert ohne probleme.

Wie mache ich es denn wenn ich zb die 199 abgespeichert habe und so direkt übergeben will.
bsp.

anzahl = 199;
dos('prog\testprog.exe 1.0 4 4 anzahl 2 ./desparo < temp/crossval.txt');

funktioniert so nich.. da matlab anzahl als string natürlich weitergibt.
also wie bekomm ichs hin das anzahl als zahl weitergegeben wird?

Es geht darum, dass das ganze in einer Schleife abläuft und "anzahl" immer anders ist!

Danke für eure Hilfe,
Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 28.01.2009, 16:46     Titel:
  Antworten mit Zitat      
Hallo riverlove,

bei ganzen Zahlen geht es am einfachsten so:

Code:
anzahl = 199;
dos(['prog\testprog.exe 1.0 4 4 ' num2str(anzahl) ' 2 ./desparo < temp/crossval.txt');


Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Silverhawk
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 20.11.08
Wohnort: Braunschweig
Version: R2008b
     Beitrag Verfasst am: 12.03.2009, 12:08     Titel:
  Antworten mit Zitat      
Mein Problem liegt gerade dabei, dass ich ein Virtual Dub Script anstarten möchte.
Dies geht eigentlich mit dem Befehl: vdub.exe /s script.txt. das klappt von der normalen windows kommandozeile auch wunderbar.
Nur wenn ich mit Matlab den Befehl ausführe sagt er mir:
Cannot open file "script.txt":
Das System kann die angegebene Datei nicht finden.

Code:
dos('U:\Diplomarbeit\VirtualDub-1.8.8\vdub.exe /s script.txt');


woran kann das liegen?
_________________

Lauf nicht weg sagte der Drache, ich will doch nur kosten....
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.03.2009, 12:20     Titel:
  Antworten mit Zitat      
Vielleicht hilft es, den vollen Pfad von der skript.txt anzugeben:

"C:\irgendwo auf der platte\skript.txt"

Wenn Leerzeichen im Namen sind, dann unbedingt mit Anführungszeichen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Silverhawk
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 20.11.08
Wohnort: Braunschweig
Version: R2008b
     Beitrag Verfasst am: 12.03.2009, 13:22     Titel:
  Antworten mit Zitat      
Embarassed hätte ich auch selbst mal drauf kommen können
Vielen dank Exclamation
_________________

Lauf nicht weg sagte der Drache, ich will doch nur kosten....
Private Nachricht senden Benutzer-Profile anzeigen
 
Florian

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2009, 10:54     Titel:
  Antworten mit Zitat      
Hi,

ich denke ich habe ein ähnliches Problem! ich möchte über matlab ein Programm ausführen. dieses Programm muss normalerweise über die Windows-Eingabeaufforderung aufgerufen werden. Wenn man sich innerhalb des Ordners (nennen wir ihn "Dokumente und XYZ") in der Eingabeaufforderung befindet, muss man einen Befehl eingeben, der aus Buchstaben, Leerzeichen und Zahlen besteht. Diese Kann das Programm dann verarbeiten.

was hab ich bis jetzt in Matlab ausprobiert?
durch den Beitrag oben, bin ich auf den DOS-Befehl aufmerksam geworden. Er scheint wie geschaffen für meine Zwecke Wink .... ich habe also den richtigen Pfad gefunden, und kann zum BSP. mit:

Code:
dos('C:\Dokumente und XYZ\abc.exe')


die abc.exe problemlos öffnen! Eigentlich möchte ich aber sowas eingeben:

Code:
dos('C:\Dokumente und XYZ\hallo name1A name2B [0 lx 1 20] ')


In der Eingabeaufforderung funktioniert das so, aber Matlab meckert:
----Der Befehl "C:\Dokumente" ist entweder falsch geschrieben oder
konnte nicht gefunden werden. ----

Wie oben schon erwähnt, hab ich auch schon Anführungszeichen um den String gesetzt, aber da meckert er genauso.
Hab ich die eventuell falsch gesetzt?
gibt es Probleme mit den eckigen Klammern und den Zahlen?

Ich hoffe ihr könnt mir wieder einmal weiter helfen - Danke schonmal

Florian
 
Florian

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2009, 15:35     Titel:
  Antworten mit Zitat      
hey,

da die antwort für mich recht dringend ist und dieses Thema schon als "beantwortet" aufgeführt ist, schreibe ich besser einen eigenen Beitrag.

Titel lautet:
Anwendung DOS-Befehl
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2009, 15:38     Titel:
  Antworten mit Zitat      
Code:

dos(['stringding', num2str(539), 'stringding', sprintf('%.3f', pi), 'stringding']);

ist das gleiche wie

dos('stringding539stringding3.141stringding');

 
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 17.06.2009, 18:03     Titel:
  Antworten mit Zitat      
Florian hat Folgendes geschrieben:
hey,

da die antwort für mich recht dringend ist und dieses Thema schon als "beantwortet" aufgeführt ist, schreibe ich besser einen eigenen Beitrag.

Titel lautet:
Anwendung DOS-Befehl


Du kannst auch einfach den Status wieder ändern - dazu ist der ja da Wink
_________________

>> 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
 
Florian

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2009, 22:00     Titel:
  Antworten mit Zitat      
Hey,


ich habs noch nicht begriffen - sorry...
bedeutet Epfi´s beitrag, dass es egal sein sollte, wie ich es eingebe? An den Ziffern, Punkten und Klammern kann es also nicht liegen?

wenn nicht, könnt Ihr mir weiterhelfen, wie ich das Programm sonst öffnen kann?


mein Problem mit etwas anderen Worten
......
In der Windows-Eingabeaufforderung habe ich mich bis zu meinem gewünschten Ordner (C:\Dokumente und XYZ\ ) "durchgekämpft".
Bis dahin mach ich auch keine Fehler in Matlab (weil ja das öffnen der "abc.exe" funktioniert).
In der Windows-Eingabeaufforderung müsste ich in meinem Ordner die folgende Zeile eingeben, damit mein gewünschtes Programm aufgerufen wird: "hallo nameA.wav [0 lx 1 20]"
Wenn ich das in meinem Dos-Befehl in Matlab mit reinschreibe, kommt die Fehlermeldung (siehe oben).
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2009, 22:32     Titel:
  Antworten mit Zitat      
Sorry, habe dich falsch verstanden - ist Blödsinn, was da oben steht.

Anführungszeichen setzen könnte so klappen:
Code:

dos('"C:\dokumente und abstaende\programmverzeichnis\programm" parameter')
 


Also die Parameter nicht mehr in die Anführungszeichen mit reinnehmen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Florian

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.06.2009, 10:02     Titel:
  Antworten mit Zitat      
hey,

klappt prima!!!!
er hat auch keine probleme mit den eckigen klammern (wie ich befürchtet hatte)

total toll Laughing

DANKE!!!
 
LBF

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.10.2009, 15:06     Titel: Weitere Eingaben machen
  Antworten mit Zitat      
Hallo

habe ein ähnliches Problem.

Möchte über den dos Befehl ein tool starten, welches allerdings noch 2 weitere Eingaben benötigt.

ich starte es folgendermaßen:

dos('M:\dir\tool.exe' )

Danach ist er kurz beschäftigt und erwartet dann von mir die Eingabe der Inputdatei und darauf noch mal einen namen für den output.

Das Tool kann mit Übergaben nichts anfangen und es stammt auch nicht von mir, sonst wäre das schon geändert....

Wie kann ich matlab dazu bringen noch mal 2 vorher festgelegte Eingaben bei den nächsten Eingabemöglichkeiten zu machen?

Habe es mit übergaben im dos und ! probiert aber klappte leider nicht.

Eine Stunde Suche hat mir irgendwie auch noch nix gebracht Sad
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 20.10.2009, 17:14     Titel:
  Antworten mit Zitat      
Hallo versuch mal das:

Code:

dos('start /WAIT M:\dir\tool.exe' )
 


oder dies:

Code:

dos('M:\dir\tool.exe &' )
 
Private Nachricht senden Benutzer-Profile anzeigen
 
LBF

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.10.2009, 17:25     Titel:
  Antworten mit Zitat      
Danke, aber hat mir nicht weitergeholfen...

naja vielleicht kommts mir über wochenende, das fängt bei mir nämlich jetzt an Very Happy
 
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.