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

Clearvars -except löscht alle Variablen?

 

Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.08.2013, 12:00     Titel:
  Antworten mit Zitat      
dann zippen oder auf nen filehoster laden.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen


Geranie
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 44
Anmeldedatum: 27.05.13
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 22.08.2013, 12:04     Titel:
  Antworten mit Zitat      
Danke, zippen funktionierte Wink

Testfiles.zip
 Beschreibung:

Download
 Dateiname:  Testfiles.zip
 Dateigröße:  725 Bytes
 Heruntergeladen:  258 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.08.2013, 12:13     Titel:
  Antworten mit Zitat      
die funktion getfilenames ist leider keine matlab funktion(jedenfalls ist sie mir und der doc nicht bekannt). die musst du dann auch noch mitliefern.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.08.2013, 12:24     Titel:
  Antworten mit Zitat      
Code:
function readData_TFC_MO

dirRaw = [pwd];
fileNames = dir('*.csv');

for iRead=1:length(fileNames)
   
   disp(fileNames(iRead).name)
   
   [~, ~, untitled] = xlsread(fileNames(iRead).name);
   untitled(cellfun(@(x) ~isempty(x) && isnumeric(x) && isnan(x),untitled)) = {''};
   
   % Get dates
   date = regexp(untitled(2:end,1),'-','split');
   startDate=[];
    endDate=[];
   
    for i=1:length(untitled(2:end,1))
        startDate{i,1} = date{i,1}{1,1};
        endDate{i,1} = date{i,1}{1,2};
    end
   startTime = datevec(startDate,'dd.mm');
   endTime = datevec(endDate,'dd.mm.yyyy');
   startTime(:,1) = endTime(:,1);
   
    clearvars -except iRead fileNames
end

hab den code modifiziert damit er auch ohne getfilenames bei mir läuft. damit kann ich den fehler allerdings nicht nachstellen. iread und filenames bleiben wie erwartet nach dem clear erhalten.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Kascho
Forum-Century

Forum-Century


Beiträge: 195
Anmeldedatum: 24.03.10
Wohnort: Jena
Version: R2008b ... :(
     Beitrag Verfasst am: 22.08.2013, 12:26     Titel:
  Antworten mit Zitat      
Wie Winkow schon sagt fehlt die Funktion. Ich hab es mit "dir" umgebaut. Leider läuft xlsread bei mir auch nicht ... habe einfach mal textscan genommen. Also glaube nicht, dass die eigentliche Berechnung bei mir korrekt funktioniert.
Dennoch läuft die Schleife 2 mal durch und fileNames ist am Ende noch vorhanden (wie es sein sollte).
Wie gesagt, musste einiges umschreiben was die Reproduzierbarkeit des Fehlers einschränkt ....
Sorry, da muss jemand anders probieren^^

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Geranie
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 44
Anmeldedatum: 27.05.13
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 22.08.2013, 12:48     Titel:
  Antworten mit Zitat      
Hey,
ich danke euch beiden!!
Ich habe gerade an einem anderen Skript weitergearbeitet und musste feststellen: Auch hier funktioniert 'clearvars -except' nicht mehr, also, löscht auch einfach alle Variablen.
Jetzt bin ich grad etwas überfragt, woran das liegen könnte? ich hab den clearvars-Code nie verändert oder ähnliches und vorgestern funktionierte zumindest das Skript, an dem ich gerade gearbeitet habe, noch einwandfei?!
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.08.2013, 12:51     Titel:
  Antworten mit Zitat      
wie gesagt dein gelieferter code reproduziert den fehler so nicht ^^
muss also irgendwo anders liegen. ich gehe mal nicht davon aus das du die funktion clearvars geändert hast ^^
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.08.2013, 13:02     Titel:
  Antworten mit Zitat      
Hallo Geranie,

läuft der Code, wenn du den clearvars-Befehl weglässt?
Auf den ersten Blick werden die Variablen im nächsten Schleifendurchlauf ohnehin überschrieben. Für den Programmablauf sollte es also keinen Unterschied machen.

Füge bitte auch unmittelbar nach dem clearvars-Befehl mal
Code:

ein. Werden da noch Variablen angezeigt?

Eine andere Möglichkeit ist eine versehentliche Überlagerung der clearvars-Funktion. Gib bitte mal
Code:

ein.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Geranie
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 44
Anmeldedatum: 27.05.13
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 22.08.2013, 14:31     Titel:
  Antworten mit Zitat      
Hrmpf, ich verstehs irgendwie echt nicht :/

whos gibt nichts aus

über which clearvars bekomme ich:
C:\Program Files (x86)\MATLAB\R2013a\toolbox\matlab\general\clearvars.m

Danke füre eure Hilfen und Ideen!

Edit: Ja, der Code läuft, wenn ich den clearvar Befehl weglasse, allerdings bekomme ich dann im weiteren Codeverlauf Probleme, die ich bislang darauf zurückgeführt habe, dass nicht alle Variablen gelöscht werden.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.08.2013, 16:06     Titel:
  Antworten mit Zitat      
Hallo,

dann hilft wirklich nur noch ein komplett reproduzierbares Beispiel.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Geranie
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 44
Anmeldedatum: 27.05.13
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 22.08.2013, 16:21     Titel:
  Antworten mit Zitat      
Der gesamte Code ist leider wirklich über 400 Zeilen lang :/ Ich habe jetzt den Autor nochmal angeschrieben, vllt hat der eine Idee.

Dennoch habe ich jetzt das Problem, das clearvars bei mir gar nicht mehr funktioniert, d.h. einfach immer alle Variablen gelöscht werden... Hatte das schonmal jemand? Gibt es eine Alternative, außer alle einzeln mit clear zu löschen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.08.2013, 17:11     Titel:
  Antworten mit Zitat      
Hallo,
Zitat:

Ja, der Code läuft, wenn ich den clearvar Befehl weglasse, allerdings bekomme ich dann im weiteren Codeverlauf Probleme, die ich bislang darauf zurückgeführt habe, dass nicht alle Variablen gelöscht werden.

Das sollte sich doch abstellen lassen.

Zitat:
Dennoch habe ich jetzt das Problem, das clearvars bei mir gar nicht mehr funktioniert,

Dann sollte es doch kein Problem sein, daraus einen Code zu erzeugen, bei dem der Fehler auftritt.

Es würde mich übrigens sehr verwundern, wenn derselbe Code auf einmal etwas anderes macht. Geh doch mal in das Verzeichnis
C:\Program Files (x86)\MATLAB\R2013a\toolbox\matlab\general\
und schau dir an, ob die clearvars.m nicht vielleicht doch vor kurzem geändert wurde.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Geranie
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 44
Anmeldedatum: 27.05.13
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 22.08.2013, 17:21     Titel:
  Antworten mit Zitat      
Danke Harald...

nein, clearvars wurde nicht vor kurzem geändert. Die Funktion funktioniert bei jetzt aber schon nichtmal mehr bei einem ganz einfach Code:

Code:
a1=rand(10);
b1=rand(10);

clearvars -except a1


Es werden einfach beide Variablen gelöscht. Es scheint also ein lokales Problem zu sein...?!

Edit:
Gerade mal ausprobiert:

Code:


Da passiert dann einfach gar nichts, also es wird nichts gelöscht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.08.2013, 18:00     Titel:
  Antworten mit Zitat      
nunja dann kannst du dich nur noch an den support wenden da denke ich die angegeben befehle bei jedem das machen was sie sollen außer bei dir.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.08.2013, 18:18     Titel:
  Antworten mit Zitat      
Hallo,

ich würde mich Winkow anschließen.
Alternativ eine Neuinstallation von MATLAB.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2, 3  Weiter

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