|
|
Sicherheitsabfrage bei clear und beenden |
|
mr. edd |
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 12.04.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2009a
|
|
|
|
|
|
Verfasst am: 10.08.2010, 08:46
Titel: Sicherheitsabfrage bei clear und beenden
|
|
|
|
|
Ich bin gerade mal wieder echt genervt von Matlab, da es ohne ein Wort die Arbeit von etwa zwei Stunden gefressen hat. Der Rechner hängt, einmal zuviel Strg+W gedrückt und schon ist Matlab ohne weitere Rückfrage weg.
Kann man da irgendwie eine Rückfrage einschalten? So wie bei jedem anderen Programm, dass fragt, ob man die Änderungen speichern oder verwerfen möchte. Oder doch das Beenden abbrechen möchte.
Gleiches würde ich mir bei clear wünschen. Vorgestern habe ich wieder in halber Trance statt 'clf' (clear figure) 'clear' eingegeben und damit wieder mal die Arbeit eines Nachmittags vernichtet.
Meiner Meinung nach ist das ein ganz dicker Bug in Matlab. Aber bevor ich das da melde, wollte ich vorher kurz zurückfragen, wie andere das sehen bzw. ob es da einen versteckten Parameter gibt, den man ändern kann, etc.
Im Moment schreibe ich 'nur' meine Diplomarbeit. Wenn ich alleine die Stunden, die mich das Beenden oder clear ohne Rückfrage schon gekostet haben, mit einem Ingenieurstundensatz multipliziere, frage ich mich ernsthaft, wieso die großen Kunden von Mathworks auf dieses kleine Feature noch nicht stärker gedrungen haben...
Gruß,
Christoph
|
|
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 10.08.2010, 09:21
Titel:
|
|
|
|
|
Spannende Frage. Ich habe ihn den 15 Jahren in den ich mit MATLAB arbeite noch nie Ctrl W gedrückt und musste erst mal schauen ob es wirklich für Beenden steht
Ich kann mir ein paar Tricks vorstellen wenn einem das häufiger passiert (weiter unten), aber ich nehme an es liegt auch viel an der Arbeitsweise. Wenn ich viel interaktiv arbeite sehe ich die Gefahr durch ungewolltes Beenden oder auch mal einen Absturz Daten zu verlieren. Dagegen ist die Arbeit mit M-Skripten ein Schutz. Die werden auch regelmässig als ASV (auto save) gespeichert. Falls man MATLAB beenden will und die Änderungen sind nicht gespeichert wird auch hier wie üblich nachgefragt. Ferner kann man durch die Command History das Problem minimieren.
Hier noch die Ideen:
1. Ctrl W anders belegen: File -> Preferences - >Keyboard -> Shortcut
2. Eine Abfrage in finish.m programmieren. finish.m muss einfach nur irgendwo auf dem Pfad sein und es wird beim Verlassen ausgeführt. Dort eine Dialogbox-Abfrage durchführen
3. Zumindest den gesamten Workspace in finish.m speichern. Man kann natürlich auch alle Figures speichern.
Und aus Neugierde habe ich mal geschaut - ich konnte keinen Verbesserungsvrohsclag zu diesem Thema finden. Wenn sich hier aber noch mindestens 4 andere Nutzer finden, tue ich das gerne.
Andreas
Andreas
|
|
|
mr. edd |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 12.04.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2009a
|
|
|
|
|
|
Verfasst am: 10.08.2010, 10:21
Titel:
|
|
|
|
|
Zitat: |
Spannende Frage. Ich habe ihn den 15 Jahren in den ich mit MATLAB arbeite noch nie Ctrl W gedrückt und musste erst mal schauen ob es wirklich für Beenden steht |
Primär schließt es nur das Hauptfenster. Aber ohne dieses beendet sich Matlab kurz darauf selbst.
Zitat: |
1. Ctrl W anders belegen: File -> Preferences - >Keyboard -> Shortcut |
Das klappt nicht, da Strg+W bei mir (vielleicht auch generell) vom Window manager abgefangen wird.
Zitat: |
2. Eine Abfrage in finish.m programmieren. finish.m muss einfach nur irgendwo auf dem Pfad sein und es wird beim Verlassen ausgeführt. Dort eine Dialogbox-Abfrage durchführen |
Der Hinweis mit der finish.m war ein guter Ausgangspunkt.
brachte keine Ergebnisse, da in meiner seit zwei Sekunden existierenden finish.m noch nichts drin stand. Ein
hingegen schon:
In der local-Toolbox gibt es bereits zwei Beispiele, die genau mein Problem lösen. Einfach
eingeben und nach eigenen Bedürfnissen erweitern und zu finish.m umbenennen.
Nachdem ich jetzt weiß, wo die passende Stellschraube ist, wundert mich nur noch, warum ich noch kein Tutorial gefunden habe, in der diese Datei erwähnt wird. Zumindest bei uns am Institut werde ich das Tutorial direkt mal ergänzen.
Danke für den Hinweis!
Von meiner Seite ist das Thema damit erledigt. Ich unterstütze aber weiterhin den Verbesserungsvorschlag, eine Standard-finish.m zu hinterlegen, die die bekannte Abfrage (Beenden/Speichern Ja/Nein) drin hat. Die Profinutzer, die Matlab auf nem Cluster oder ähnlichem ohne GUI laufen lassen, werden eher wissen, wo sie die Abfrage abstellen, als die Neulinge, die sich über Datenverlust ärgern.
Gruß,
Christoph
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 10.08.2010, 13:32
Titel:
|
|
Hallo
Also irgendwie verstehe ich nicht, warum du mit Strg+W Probleme hast.
Editor von Matlab fragt bei mir ganz normal nach, ob Änderungen gespeichert werden sollen, getestet an Version 2007b und 2010b prerelease.
Komplett Matlab zu schließen habe ich mit Strg+W nicht geschafft.
Was hast du denn für Matlab Version?
Bei CLEAR ist keine Abfrage vorhergesehen, und es ist kein Bug, das ist so gewollt, hier ist der Entwickler verantwortlich. Das ist in jeder Programmiersprache so.
Verwende SAVE zuvor, wenn du beabsichtigst etwas zu ändern.
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 10.08.2010, 17:37
Titel:
|
|
|
|
|
Hallo Christoph,
man kann CLEAR sehr leicht erweitern:
Erstelle einen Ordner und fügre ihn vor den Matlab-Toolboxen in den Pfad ein. Wenn sich dort die Datei "clear.m" befindet, wird sie benutzt. Dort kannst Du z.B. per SAVE die zu löschenden Daten in ein MAT-File speichern - am besten mit der aktuellen Uhrzeit im Namen.
Nach dem Speichern, huuuaaa, per EVALIN und BUILTIN die Original-CLEAR Funktion aufrufen, um die Daten zu löschen.
Ich würde dem aber nicht trauen. Erstens können manche Toolbox-funktionen dadurch gräßlich lahm werden, wenn sie große temporäre Arrays zwecks Speicher-Schonung nach der Benutzung per CLEAR wieder freigeben. Dann diese Daten auf die Platte zu schreiben, wäre keine große Hilfe.
Viel sicherer ist es, Zwischenergebnisse zu sinnvollen Zeiten manuell in ein Mat-File zu schreiben. Dann weiß man nämlich auch, in welchem Zustand die Werte gerade sind, ob also bestimmte Programmabschnitte bereits gelaufen sind oder nicht.
Gruß, Jan
|
|
|
mr. edd |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 12.04.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2009a
|
|
|
|
|
|
Verfasst am: 10.08.2010, 18:01
Titel:
|
|
|
|
|
Hallo!
@denny
Zitat: |
Also irgendwie verstehe ich nicht, warum du mit Strg+W Probleme hast.
Editor von Matlab fragt bei mir ganz normal nach, ob Änderungen gespeichert werden sollen, getestet an Version 2007b und 2010b prerelease.
Komplett Matlab zu schließen habe ich mit Strg+W nicht geschafft. |
Stimmt, wenn der Editor offen ist, dann fragt er nach. Wenn ich aber das Hauptfenster (also das mit der Menüleiste drin) schließe, dann habe ich den Kürzeren gezogen. Ich habe zur Zeit R2009a (64 bit) auf nem Intel-Mac.
Zitat: |
Bei CLEAR ist keine Abfrage vorhergesehen, und es ist kein Bug, das ist so gewollt, hier ist der Entwickler verantwortlich. Das ist in jeder Programmiersprache so. |
Das ist richtig, in anderen Programmiersprachen wird das äquivalent zu clear auch nicht bestätigt. Da schreibe ich aber auch ein Programm, teste es, modifiziere es, teste wieder, usw. und dann erst liefert es sinnvolle Ergebnisse. Mit der Konsole in Matlab will ich ja gar nicht primär programmieren sondern nur einen Rechenknecht bedienen, der mir das viele schreiben und Selberrechnen auf Papier abnimmt. Zumindest mein Arbeitsablauf ist da: Daten laden, etwas ausprobieren, Ergebnisse anschauen, etwas anderes ausprobieren, Ergebnisse anschauen, ... bis ein Teilalgorithmus vernünftige Ergebnisse liefert. Dann wandert er auch in eine eigene Funktion und wird quasi zu einem "normalen" Programm. Da ist es in der Tat hinderlich, jedes clear bestätigen zu müssen oder vorher nen Dump auf die Festplatte zu schreiben.
@ Jan S:
Zitat: |
Viel sicherer ist es, Zwischenergebnisse zu sinnvollen Zeiten manuell in ein Mat-File zu schreiben. Dann weiß man nämlich auch, in welchem Zustand die Werte gerade sind, ob also bestimmte Programmabschnitte bereits gelaufen sind oder nicht. |
Quasi ein manuelles Backup. Alternativ zu der Sicherheitsabfrage würde ich sowas gerne automatisch machen. Mein Texteditor schreibt ja auch regelmäßig Sicherheitskopien der Dateien auf die Festplatte. Die wandern dann (zumindest in einigen Fällen) mit ins stündliche Backup. Da ich gerade eher den Abgabezeitpunkt als das regelmäßige Backup im Kopf habe, würde ich das gerne automatisieren. Aber Matlab ist, soweit ich weiß, leider nicht scriptingfähig.
Gruß,
Christoph
|
|
|
|
|
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.
|
|