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

Sicherheitsabfrage bei clear und beenden

 

mr. edd
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 12.04.10
Wohnort: ---
Version: 2009a
     Beitrag Verfasst am: 10.08.2010, 09:46     Titel: Sicherheitsabfrage bei clear und beenden
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 10.08.2010, 10:21     Titel:
  Antworten mit 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 Smile

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
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
mr. edd
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 12.04.10
Wohnort: ---
Version: 2009a
     Beitrag Verfasst am: 10.08.2010, 11:21     Titel:
  Antworten mit Zitat      
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 Smile

Primär schließt es nur das Hauptfenster. Aber ohne dieses beendet sich Matlab kurz darauf selbst. Wink


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.
Code:

brachte keine Ergebnisse, da in meiner seit zwei Sekunden existierenden finish.m noch nichts drin stand. Ein
Code:
hingegen schon:

In der local-Toolbox gibt es bereits zwei Beispiele, die genau mein Problem lösen. Einfach
Code:
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
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 10.08.2010, 14:32     Titel:
  Antworten mit Zitat      
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.
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: 10.08.2010, 18:37     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
mr. edd
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 12.04.10
Wohnort: ---
Version: 2009a
     Beitrag Verfasst am: 10.08.2010, 19:01     Titel:
  Antworten mit Zitat      
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
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 - 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.