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

exist in Verbindung mit genvarname

 

smaica
Forum-Century

Forum-Century


Beiträge: 105
Anmeldedatum: 02.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.04.2013, 14:34     Titel: exist in Verbindung mit genvarname
  Antworten mit Zitat      
Hallo,

ich habe ein Problem mit der Abfrage, ob eine Datei bereits existiert.

Ich will über eine Schleife in eine bestehende Datei schreiben und in dieser and Ende die neuen Daten "anhängen". Falls die Datei noch nicht existiert hänge ich nicht an das Ende die neuen Werte an, sondern die neuen Werte belegen selbstverständlich eine neue Datei welche dann abgespeichert wird. Ansonsten wird die alte Datei geöffnet, erweitert und dann wieder abgespeichert.

Das ganze sieht etwa so aus:

Code:
if exist('Daten.(genvarname(UeNB))')==0
           Daten.(genvarname(UeNB))(1:length(nums),1)=nums;
           save Daten.mat Daten
       else
           load Daten.mat
           Daten.(genvarname(UeNB))(length(Daten.(genvarname(UeNB)))+1:length(Daten.(genvarname(UeNB))+1+length(nums)),1)=nums;
           save Daten.mat Daten
       end
       
       if exist('Zeit.(genvarname(UeNB))')==0
           Zeit.(genvarname(UeNB))(1:length(txt),1)=datenum(txt,'dd.mm.yyyy HH:MM:SS');
           save Zeit.mat Zeit
       else
           load Zeit.mat Zeit
           Zeit.(genvarname(UeNB))(length(Zeit.(genvarname(UeNB)))+1:length(Zeit.(genvarname(UeNB))+1+length(txt)),1)=datenum(txt,'dd.mm.yyyy HH:MM:SS');
           save Zeit.mat Zeit
       end


Wie man sehen kann wird der Name der Strukturvariable über genvarname erzeugt, da der name auch aus den Daten eingelesen werden muss.

Mein Problem ist, dass exist('Zeit.(genvarname(UeNB))') immer als Output "0" erzeugt, auch wenn die Variablen (z.B. Zeit.Name1) bereits existiert, da exist mit seinen '' glaube ich das genvarname nicht ausführen kann.

Hat da jemand einen Rat?
Vielen Dank
smaica
Private Nachricht senden Benutzer-Profile anzeigen


smaica
Themenstarter

Forum-Century

Forum-Century


Beiträge: 105
Anmeldedatum: 02.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.04.2013, 15:22     Titel:
  Antworten mit Zitat      
Hallo,

ich konnte mir die Frage gerade selbst beantworten. exist prüft nur die Hauptvariable ab, nicht die einzelnen Felder einer Strukturvariable, wie ich die habe. Ich habe es nun mit:

Code:


geschafft. Ein Dank an alle, die nachgedacht haben (:
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.04.2013, 15:28     Titel:
  Antworten mit Zitat      
Hallo
mit EXIST kann man keine Unterstrukturen prüfen, dazu ist ISFIELD zuständig.
Code:

if isfield(Daten, UeNB)
Daten.(UeNB)(1:length(nums),1)=nums;
else

end
 


Dann ist mir nicht klar was UeNB ist? Eine Variable, welchen Datentyp hat denn diese Variable: String oder Cellstring?
Ich vermute UeNB ist ein String, dann brauchst du doch keinen GENVARNAME
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 - 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.