|
|
GUI - standalone; .mat-files nicht kompilieren |
|
Timmmo |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.04.2011, 15:20
Titel: GUI - standalone; .mat-files nicht kompilieren
|
|
Hallo Zusammen!
Ich würd gern aus meinem GUI eine .exe basteln. Leider lese ich bereits berechnete daten aus .mat-files ein, die eine Gesamtgröße von über 1GB haben. Diese müsste ich ebenfalls mittels Deploytool mit in die .exe packen. Das Eregebnis ist eine rießige .exe die ewig braucht um zu starten.
Meine Frage: gibt es eine Möglichkeit die .exe ohne die .mat-files zu kompilieren und die .mat-files einfach in den selben Ordner wie die .exe zu legen?
Würd mich über Tips wie immer sehr freuen
Danke LG Timo
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 25.04.2011, 19:33
Titel:
|
|
Hallo,
hast du's denn schon mal so ausprobiert?
Das einzige Problem, was ich mir dabei vorstellen könnte, ist, dass die EXE möglicherweise nicht im momentanen Verzeichnis ausgeführt wird. Ich würde also immer den Pfad mit einbauen.
Grüße,
Harald
|
|
|
Marco H. |
Forum-Guru
|
|
Beiträge: 404
|
|
|
|
Anmeldedatum: 12.11.10
|
|
|
|
Wohnort: Dortmund
|
|
|
|
Version: 2010a/2012b
|
|
|
|
|
|
Verfasst am: 25.04.2011, 21:33
Titel:
|
|
Hey,
ja du kannst die Datei in den gleichen Ordner wie deine exe. Datei ablegen. Im Quellcode lädst du diese dann einfach mit load('DeineDatei.mat') (der Current Folder ist der indem die exe ist). Vll musst du dann noch ne Abfrage machen (if isdeploeyd) um den Pfad bei der Benutzung der Matlab Entwicklungsumgebung nutzen zu können.
Das Starten der exe-Datei kann schonmal 30 Sekunden dauern, weil eine abgespeckte Matlabvariente in den Arbeitsspeicher geladen wird.
MfG Marco
|
|
|
Timmmo |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.04.2011, 09:42
Titel:
|
|
Hallo nochmal,
@Harald: Ja habs genau so getestet und die beschrieben lange ladezeit war das resultat.
@marco
Marco H. hat Folgendes geschrieben: |
...Im Quellcode lädst du diese dann einfach mit load('DeineDatei.mat') (der Current Folder ist der indem die exe ist)...
|
hab' ich gerade getestet... lade meine daten abhängig von einer variablen folgendermaßen.
leider funktioniert das Ganze nicht wie gewünscht. Das Prog. bleibt genau an der Stelle hängen, an der das .mat file geladen wird. Scheint also nicht zu funktionieren wenn man einfach die files im selben Verzeichnis ablegt wie die exe. Oder muss ich schon beim Kompilieren irgendwas beachten??? Würd euch gern mehr Infos posten, aber ohne debugging leider nicht möglich.
Würd mich über weitere Tips freuen
Danke LG
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 26.04.2011, 09:52
Titel:
|
|
Hallo,
"ewig" ist relativ. Es braucht einige Zeit, bis die MCR geladen ist. Man müsste das also mit einer "normalen" kompilierten Anwendung vergleichen.
Wie schon gesagt empfehle ich, bei der MAT-Datei den vollständigen Pfad anzugeben.
Grüße,
Harald
|
|
|
Marco H. |
Forum-Guru
|
|
Beiträge: 404
|
|
|
|
Anmeldedatum: 12.11.10
|
|
|
|
Wohnort: Dortmund
|
|
|
|
Version: 2010a/2012b
|
|
|
|
|
|
Verfasst am: 26.04.2011, 10:01
Titel:
|
|
|
|
|
Hey,
also das muss funktionieren. Ich mache das nämlich schon seit längerem so (auf verschiedensten PCs). Ich benutze dafür die Version 2010a. Zudem erscheint, wenn du z.B. uiputfile benutzt und keinen Pfad angibst der Ordner indem du die exe hast. Das ist auch noch ein Indiz dafür, dass es der Current Path ist. Zudem kannst du ja die console mitlaufen lassen, da wird dir angezeigt was für eine Fehlermeldung sich ergeben hat. Was steht denn da (in 2011a gibs sogar eine msgbox die deine Fehler anzeigt, da brauchst du die Console angeblich nicht mehr )?
@Harrald
Zitat: |
Wie schon gesagt empfehle ich, bei der MAT-Datei den vollständigen Pfad anzugeben
|
Es ist durchaus nicht so einfach den kompletten Pfad anzugeben, denn besonders wenn eine Anwendung auf verschiedenen Betriebssystem laufen soll (z.B. XP Win7) welche ja unterschiedliche Ordnernamen haben. Hier müsste man dann mit Systemvariablen arbeiten. Beispiel (Programme (x86) Win7 64 Bit, und Programme unter XP). Hier müsste man wieder verschiedene Fälle betrachten, die man sich Sparen kann, wenn man weiß, dass der Pfad der exe = dem Current Path entspricht.
Aber Prinzipell hast du recht...
MfG Marco
|
|
|
Timmo |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.04.2011, 10:44
Titel:
|
|
Marco H. hat Folgendes geschrieben: |
Hey,
Zudem kannst du ja die console mitlaufen lassen, da wird dir angezeigt was für eine Fehlermeldung sich ergeben hat. Was steht denn da (in 2011a gibs sogar eine msgbox die deine Fehler anzeigt, da brauchst du die Console angeblich nicht mehr )?
|
Vielleicht ne blöde Frage... aber wie lasse ich die Konsole mitlaufen?
Marco H. hat Folgendes geschrieben: |
Es ist durchaus nicht so einfach den kompletten Pfad anzugeben, denn besonders wenn eine Anwendung auf verschiedenen Betriebssystem laufen soll (z.B. XP Win7) welche ja unterschiedliche Ordnernamen haben. Hier müsste man dann mit Systemvariablen arbeiten. Beispiel (Programme (x86) Win7 64 Bit, und Programme unter XP). Hier müsste man wieder verschiedene Fälle betrachten, die man sich Sparen kann, wenn man weiß, dass der Pfad der exe = dem Current Path entspricht.
|
Genau deshalb wollte ich eine komplette Pfadangabe vermeiden
Danke euch beiden!
|
|
|
Marco H. |
Forum-Guru
|
|
Beiträge: 404
|
|
|
|
Anmeldedatum: 12.11.10
|
|
|
|
Wohnort: Dortmund
|
|
|
|
Version: 2010a/2012b
|
|
|
|
|
|
Verfasst am: 26.04.2011, 11:18
Titel:
|
|
Hey,
wie Kompilierst du denn? Ich benutze standardmäßig das deploytool. Da müsste es die Defaulteinstellung sein.
Du kannst natürlich folgendes ausprobieren. Packe auf deinem Rechner alle nötigen Files in den Ordner der exe Datei. Dann gibst du im Quellcode genau den Pfad der mat-Files an die in dem Ordner der exe Datei liegen. Dann startest du das Programm über das Matlab Kommandwindow (also das M-File). Es kann natürlich sein, dass du bei so einer Masse von Daten etwas vergessen hast (alternativ benuzte addpath, allerding musst du dabei auch eine Abfrage machen if isdeployed).
MfG Marco
|
|
|
Timmmo |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.04.2011, 13:25
Titel:
|
|
Spannend Spannend...
hab' alles noch mal neu kompiliert meinen Rechner auch neu gestartet und siehe da... es funktioniert jetzt... warum ist mir nicht ganz klar, aber hauptsache es läuft jetzt.
Vielen Dank noch mal für eure Zeit
LG
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|