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

Alles im workspace löschen außer...

 

chris83

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.11.2008, 18:14     Titel: Alles im workspace löschen außer...
  Antworten mit Zitat      
mit "clear all" kann ich ja alles im workspace löschen. was mach ich, wenn ich alles löschen möchte, außer einer Variablen?


derOli
Forum-Meister

Forum-Meister


Beiträge: 579
Anmeldedatum: 19.03.08
Wohnort: Leipzig
Version: 2010a
     Beitrag Verfasst am: 17.11.2008, 19:37     Titel:
  Antworten mit Zitat      
Also ich glaube nen einfachen Befehl dafür gibts nicht, lass mich aber gerne vom Gegenteil überzeugen. Du könntest ne funktion schreiben, die die Variablen übernimmt die nicht gelöscht werden und dann mit

Code:

variables=who;
%und
clear(char(variables(k)))
 


die Variablen löschen, die nicht angegeben werden z.B. innerhalb einer while Schleife. Wenn dus hast poste bitte den Code.

Viele Grüße,

der Oli
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 17.11.2008, 21:00     Titel:
  Antworten mit Zitat      
Hallo,
mit clear kannst du auch Reguläre Ausdrücke verwenden:

Code:

val1=0;
val2=2;
val3=4;
% alle außer val3
clear('-regexp','[^val3]*');
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Christian
Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 25.03.08
Wohnort: Dortmund
Version: 2008a
     Beitrag Verfasst am: 17.11.2008, 22:04     Titel:
  Antworten mit Zitat      
denny hat Folgendes geschrieben:
Hallo,
mit clear kannst du auch Reguläre Ausdrücke verwenden:

Code:

val1=0;
val2=2;
val3=4;
% alle außer val3
clear('-regexp','[^val3]*');
 


hm, jetzt hab ich schon einmal kompliziert gemacht:

Code:

%  die Variable 'rob' soll als einzige nicht gelöscht werden

variables=who;
variables_char=char(variables);
sizeof_var=size(variables);
dont_clear_var='rob';

for i=1:sizeof_var(1)
    if ~(sum( variables_char(i,1:length(dont_clear_var)) ==dont_clear_var ) == length(dont_clear_var) )
        clear( char(variables{i}) );
    end
end

clear ('dont_clear_var', 'sizeof_var','variables','variables_char','i');
 


Dann schau ich mir die Sache mit den regulären Ausdrücken mal genauer an...
Private Nachricht senden Benutzer-Profile anzeigen
 
derOli
Forum-Meister

Forum-Meister


Beiträge: 579
Anmeldedatum: 19.03.08
Wohnort: Leipzig
Version: 2010a
     Beitrag Verfasst am: 17.11.2008, 23:44     Titel:
  Antworten mit Zitat      
Sorry,

hab ich nich dran gedacht.

Grüße,

der Oli
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 18.11.2008, 11:39     Titel:
  Antworten mit Zitat      
Hallo,
es gibt da leider ein kleines Haken, die durch Reguläre Ausdrücke nicht so schön lösbar.

Buchstabenvertauschung wie val3 und vla3, kann der Ausdruck '[^val3]*' nicht unterscheiden
Code:

val1=0;
val2=2;
val3=4;
vla3=5;
% val3 vla3 bleiben in speicher
clear('-regexp','[^val3]*');

 


deswegen muss jedes einzelne Zeichen verneint werden
Code:

val1=0;
val2=2;
val3=4;
vla3=5;
clear('-regexp','[^v][^a][^l][^3]*');

 


Übrigens in Matlab ab Version 2008a, existiert bereits neue Funktion in der das einfach eingegeben werden kann
Code:

val1=0;
val2=2;
val3=4;
vla3=5;
clearvars('*','-except','val3')
 


Hab grade von Kollegen erfahren, dass es auf Fileexchange keep und clearbut-Funktion gibt, welche für so was auch einsetzbar ist.

http://www.mathworks.com/matlabcentral/fileexchange/181

http://www.mathworks.com/matlabcentral/fileexchange/19494
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.