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

Über Batch eine Stand-Alone öffnen

 

buto1015
Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 16.02.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2015, 14:10     Titel: Über Batch eine Stand-Alone öffnen
  Antworten mit Zitat      
Hallo zusammen,
ist es möglich über eine Batch eine Stand-Alone (matlab.exe) Anwendung zu öffnen bzw. auszuführen.

ich habe in die Btach folgendes geschrieben:
@Echo off
cls
H:
"Matlab_Berechnung\matlab.exe"
echo end

Leider funktioniert dies nicht.

Wenn ich jedoch direkt auf die matlab.exe drücke funktioniert es.

Ich denke es liegt daran, das Windows nicht auf die MCR library zugreift. Aber wie kann ich über das Batch mitteilen, das es die Anwendung unter der Verwendung der library öffnet bzw. ausführt.

Ich hoffe ihr könnt mir da weiterhelfen.
_________________

Gruß
buto1015
Private Nachricht senden Benutzer-Profile anzeigen


buto1015
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 16.02.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.06.2015, 08:14     Titel:
  Antworten mit Zitat      
Hi,
niemand eine Idee??
_________________

Gruß
buto1015
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.06.2015, 08:23     Titel:
  Antworten mit Zitat      
Hallo,

was genau funktioniert denn nicht?
Gibt es eine Fehlermeldung? Welche?
Ist die MATLAB.exe denn in diesem Verzeichnis?

Und ganz nebenbei: warum überhaupt das ganze?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
buto1015
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 16.02.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.06.2015, 10:16     Titel:
  Antworten mit Zitat      
hi,

ich will über ein externes programm die exe aufrufen. Und dies geht mit dem Programm nur über eine Batch.

Wenn ich nun die exe mit doppelklick öffne funktioniert es.
Nur wenn ich es über die batch öffne funktioniert es nicht.
Dem Anhang hab ich die Fehlermeldung beigefügt.

Ich verstehe nur nicht das es mit doppelklick funktioniert und über die batch nicht.

ist mein Code in der Batch falsch?

Fehlermeldung.JPG
 Beschreibung:

Download
 Dateiname:  Fehlermeldung.JPG
 Dateigröße:  41.62 KB
 Heruntergeladen:  277 mal

_________________

Gruß
buto1015
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.06.2015, 10:35     Titel:
  Antworten mit Zitat      
Hallo,

sieht danach aus, als ob dein MATLAB-Code eine Textdatei nicht findet.
Versuchs doch mal mit einem kompletten Pfad ('C:\Verzeichnis\bla.txt').

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 03.06.2015, 11:53     Titel:
  Antworten mit Zitat      
Hallo,

Würde es mal mit
Code:
@Echo off
Start "" "C:\Program Files\MATLAB\R2015a\bin\matlab.exe"

versuchen.

Grüße,
Seban
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 03.06.2015, 13:59     Titel:
  Antworten mit Zitat      
Hallo buto1015,

Heißt Dein selbst-kompiliertes Programm auch "matlab.exe"?

Zitat:
ich will über ein externes programm die exe aufrufen. Und dies geht mit dem Programm nur über eine Batch.

Das ist nicht klar. Welches ist "das" programm, welches "die" exe und warum geht was nur über die Batch?

Zitat:
Dem Anhang hab ich die Fehlermeldung beigefügt.

Die Fehlermeldung ist eindeutig: Offenbar wird versucht per FOPEN ein File zu öffnen, aber das File wird nicht gefunden. Meistens liegt das daran, dass nur der File-Name ohne Pfad verwednet wird in der Hoffnung, dass der aktuelle Ordner schon der richtige ist. Das ist aber grundsätzlich eine instabile Vorgehensweise. Absolute-Pfadnamen sind immer besser!
Sinnvollerweise bekommt man im Falle des Scheiterns von FOPEN eine Fehlermeldung, die den absoluten File-Namen enthält, damit man das Problem nachvollziehen kann.
Ich habe schon viel zu viele Programme gesehen, die die Ausgabe von FOPEN nicht abfangen und später im Code mit solch mystischen Fehlermeldungen abbrechen. Deshalb immer testen:
Code:
fid = fopen(FileName);
if fid == -1
  error('Cannot open file for reading: %s', FileName);
end

Wobei FileName immer auch den Pfad enthält.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
buto1015
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 16.02.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.06.2015, 14:46     Titel:
  Antworten mit Zitat      
hi zusammen,

also habs umbenannt:
also ich will über eine Batch die GUI.exe öffnen und die Batch wird von einem Programm aus geöffnet. So sind die Vorgaben.

Folgendes hätte ich evtl gleich zu Beginn schreiben sollen:
Mit dem doppelklick auf die GUI.exe öffnet sich eine GUI. Dann geht über ein Button das Windowsfenster-File Selector auf. Dort muss man dann die gewünschte csv-Datei auswählen, dann werden die Werte aus der csv an das GUI übergeben und folgend werden aus diesen Werten eine Zahl berechnet, die im GUI angezeigt werden.

Was mich wundert ist, dass wenn ich mit der Maus doppelklick auf die GUI.exe mache funktioniert alles, nur wenn ich es über die Batch starte geht die GUI auf aber nach Auswahl der csv-Datei kommt die Fehlermeldung.
_________________

Gruß
buto1015
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.06.2015, 16:04     Titel:
  Antworten mit Zitat      
Hallo,

wie von Jan und mir gesagt: sehr wahrscheinlich ein Pfadproblem.

Zitat:
Dann geht über ein Button das Windowsfenster-File Selector auf.

Über uigetfile, oder wie? Lässt du dir auch den Pfad zurückgeben, und hängst ihn vor den Dateinamen?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
buto1015
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 16.02.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.06.2015, 15:31     Titel:
  Antworten mit Zitat      
Hi,
ja genau über uigetfile. Folgend ein Ausschnitt aus dem Code:
Code:
function [B]=header_measured_values;
filename=uigetfile({'*.csv'},'File Selector');
B=importfile_header(filename,10,10);
end


So kann ich diese Funktion "header_measured_values" in die GUI einfügen und über die integrierte Funktion "importfile_header" (automatisch über den Import-Assistenten generierte Funktion) wird mir aus der ausgewählte CSV-Datei einen Wert "B" rausgeschrieben.

Muss ich daran was ändern??
_________________

Gruß
buto1015
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 04.06.2015, 16:06     Titel:
  Antworten mit Zitat      
Hallo buto1015,

Und so funktioniert das sicher:
Code:
function B=header_measured_values
[filename, filepath] = uigetfile({'*.csv'},'File Selector');
B=importfile_header(fullfile(filepath, filename),10,10);
end

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.06.2015, 17:30     Titel:
  Antworten mit Zitat      
Hallo,

sorry, aber ich kann's mir nicht verkneifen:

Zitat:
Muss ich daran was ändern??

Ja, weil du sonst offensichtlich ein Pfadproblem hast.

Was du ändern musst, hatte ich dir verbal geschrieben und Jan als Code.

In Zukunft bitte von Anfang an den relevanten Code posten. Das kann das ganze deutlich beschleunigen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
buto1015
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 16.02.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2015, 14:30     Titel:
  Antworten mit Zitat      
Hi zusammen,
vielen Dank für eure Hilfe es hat funktioniert.

Stimmt, ich hätte gleich zu Beginn den Code reinschreiben sollen. Mein Fehler war zu denken es läge nicht an meinem Code, da es ja funktionierte über doppelklick.
Ich versichere dieser Fehler passiert mir kein zweites Mal.

Danke!
_________________

Gruß
buto1015
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 - 2025 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.