|
|
m.File erzeugen und speichern |
|
Ascobol |

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 06.01.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.01.2010, 19:52
Titel: m.File erzeugen und speichern
|
 |
Hallo,
ich habe mehr ein Verständnisproblem. Also es geht um folgendes:
In einem Matlab Gui werden Angaben vom Benutzer abgefragt, z.B.
Wieviel Brötchen wollen Sie kaufen? und er Trägt dann ne Zahl ein, 3
Die Zahl hat die Variable Br_Anzahl
Im .m File zum Gui soll danneine kleine Berechnung vorgenommen werden, z.B,.
Preis = 0.21 * Br_Anzahl
Dann soll ein neues m.File aufgerufen oder geschrieben werden, in dem diese Zahl drinsteht.
Also Preis = 0.63
m.File ende, Speichern des neuen Files
Und ich habe keine Ahnung wir ich quasi dieses Neue m.File mit den Ergebnissen oder den aus dem GUI eingelesenen Werten erzeugen kann.
Ich habe schon an fprintf oder save oder saveas gedacht, aber damit würde ich ja nur die Formel Preis = 0.21 * Br_Anzahl drin stehen und nicht das Ergebnis, oder?
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 06.01.2010, 20:09
Titel:
|
 |
Hallo,
du kannst in fprintf ja die Variable Preis verwenden. Für die Datei wird dann er aktuelle Wert von Preis verwendet. Sollte also kein Problem sein.
Grüße,
Harald
|
|
|
Ascobol |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 06.01.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.01.2010, 21:44
Titel:
|
 |
Jein, alsi ich will ja nicht mit preis weiterrechnen, sondern dass richtig "preis = 5" dasteht. Also nicht dass er das intern im Speicher irgendwo kennt und damit rechnen kann, sondern dass ers hinschreibt.
Oder steh ich aufn Schlauch und das geht auch mit fprintf?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 06.01.2010, 23:23
Titel:
|
 |
Hallo,
wenn ich die Frage richtig verstehe, stehst du auf dem Schlauch. Als Beispiel Bildschirmausgabe mit fprintf:
Grüße,
Harald
|
|
|
Ascobol |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 06.01.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.01.2010, 00:18
Titel:
|
 |
Das klingt natürlich sinnvoll. Probier ich mal aus, Vielen Dank
|
|
|
Ascobol |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 06.01.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.01.2010, 19:30
Titel:
|
 |
Hallo,
ich habe das soweit ausprobiert und das klappt auch recht gut.
Ich kann mir meine Werte vom Gui auf den Bildschirm ausgeben lassen. Dann habe ich mir eine test Datei geschrieben, Wo Werte in ein anderes txt oder m-file gespeichert werden sollen.
f
und Füge ich diesen Code ähnlich in mein m-file vom Gui ein, und zwar kurz vor dem Callback für mein Fenster schließen Button.
So, nun zum Problem: In dem oberen Test-file erzeugt er mir prav diese Test.txt mit Wert=1234 drin. Wennich Text.m haben möchte gehts auch.
In dem unteren, wenn der Code im Gui-m-file ist, erzeugt er mir keine solche Datei. Es erfolgt auch keine Fehlermeldung o.ä.
Woran könnte das liegen?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 07.01.2010, 23:09
Titel:
|
 |
Hallo,
Vermutung: die Datei war aufgrund eines Fehlers beim Schließen noch geöffnet und konnte dadurch nicht noch einmal zum Schreiben geöffnet werden. Es muss heissen:
Ansonsten kann ich mir nur vorstellen, dass du in einem anderen Verzeichnis als vermutet bist.
Grüße,
Harald
|
|
|
Ascobol |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 06.01.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.01.2010, 18:27
Titel:
|
 |
Danke, damit hat es jetzt relativ gut geklappt. ich habe den Code jetzt in den Callback meines Beenden Buttons gepackt und die Klammer eingefügt und function write_file() weggelassen.
Nur besteht leider immer noch ein Problem, welches ich einfach nicht behoben bekomme
wenn ich folgenden code teste, wird Wert=1234 korrekt in test.txt reingeschrieben
Allerdings heißt das ja, dass ich einen festen Wert habe. Nun will ich aber meinen errechneten Preis in dem neuen file haben und verwende:
Nun kommt die Fehlermeldung Undefined function or variable 'Preis'.
Und das kapier ich einfach nicht. ich verwende doch die Variable schon und kann sie mir auch per printf auf den Bildschirm ausgeben lassen.
Muss ich denn irgendwie sagen dass es eine globale variable sein soll??[/code]
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 18.01.2010, 20:14
Titel:
|
 |
Hallo,
in MATLAB sind alle Variablen lokal zu einem Workspace gehörig. Wenn der Callback vollständig ist, wird die Variable Preis dort nicht definiert und ist damit nicht bekannt. Der beste Weg ist nicht, globale Variablen zu verwenden, sondern Preis z.B. aus einem Textfeld auszulesen (was natürlich heisst, dass man die GUI erst danach schließen sollte). Alternative: Preis in der Userdata eines Objekts abspeichern.
Grüße,
Harald
|
|
|
Ascobol |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 06.01.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.01.2010, 20:24
Titel:
|
 |
Zitat: |
Der beste Weg ist nicht, globale Variablen zu verwenden, sondern Preis z.B. aus einem Textfeld auszulesen |
Aber wenn ich Preis berechne, kann ich es ja nicht auslesen.
Zitat: |
Alternative: Preis in der Userdata eines Objekts abspeichern.
|
Wie mach ich das denn??? ich lese bis jetzt die dinge mitget(hObject....
oder get(handles.Br_Anzahl....
aus.
Muss ich da was anderes hinschreiben?
Oder in die jeweilige function selbst?
Ich such mal nebenbei im forum, vllt find ich ja was dazu^^
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 18.01.2010, 20:28
Titel:
|
 |
Hallo,
deswegen sage ich ja: Preis nach Berechnung z.B. in Userdata abspeichern.
... und wenn du ihn wieder brauchst:
Grüße,
Harald
|
|
|
Ascobol |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 06.01.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.01.2010, 20:29
Titel:
|
 |
Also ich hab ne Idee:
get(handles.Br_Anzahl,'userdata')
Damit hab ich ja schonmal den Ausgelesenen wert. Nur wie setzt ich jetzt den Preis auf userdata?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 18.01.2010, 20:51
Titel:
|
 |
Siehe Kommentar zuvor.
Harald
|
|
|
Ascobol |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 16
|
 |
|
 |
Anmeldedatum: 06.01.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.01.2010, 21:47
Titel:
|
 |
ui, der war noch nicht da als ich schrieb, du bist zu schnell^^
Riesen Danknatürlich, bist mein heimlicher Held
|
|
|
|
|
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.
|
|