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

Variablenname aus einem Char auslesen

 

Tormentum

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.11.2011, 12:21     Titel: Variablenname aus einem Char auslesen
  Antworten mit Zitat      
Hallo, habe gerade mit Matlab angefangen und versuche gerade eine m.-Datei zu schreiben, die mir Messdaten automatisch einließt.
Mein bisheriger Code lautet:

Code:

clear all;
clear;
if exist('Neue Messung.dir')                                 %Wenn das Verzeichnis 'Neue Messung' besteht
rmdir('Neue Messung','s');                                   %löscht das Verzeichnis 'Neue Messung'
else                                                         %andernfalls tue nichts
end
pathname = uigetdir('c:\', 'Bitte Verzeichnis auswählen');   %wählt das Verzeichnis aus
if pathname == 0                                             %wenn der Benutzer abbricht
return                                                       %Programm beenden
end

Mdir = dir(pathname);                                        %ließt alle Verzeichniseinträge ein
nbentries = size(Mdir, 1);                                   %bestimmt ihre Anzahl
Mfiles = [];                                                 %Resultatmatrix als leer vordefinieren      
for entry_i = 1:nbentries                                    %Schleife über alle Verzeichniseinträge
if Mdir(entry_i).isdir == false                              %Verzeichniseintrag nein? ->Dann Dateiname

filename = Mdir(entry_i).name;                               %extrahieren des aktuellen Dateinamen
if filename(1) ~= '.'                                        %Einträge '.' und '..' ausschliessen
[p, n, ext] = fileparts(filename);                           %Extension des Dateinamens bestimmen
if strcmpi(ext, '.lvm')                                      %mit der gewünschten Endung vergleichen
Mfiles = strvcat(Mfiles, filename);                          %bei Übereinstimmung den Dateinamen speichern
                       
end
end
end
end
nbfiles = size(Mfiles, 1);                                   %Anzahl gefundener Dateinamen bestimmen
copyfile(pathname,'Neue Messung');                           %ins Arbeitsverzeichnis unter 'Neue Messung' kopieren

cd('Neue Messung')                                           %Wechselt ins Verzeichnis neue Messung
 


Meine Frage nun ist, wie ich aus Mfiles, indem die Namen der Dateien gespeichert sind eigenständige Variablennamen machen kann.

Bsp.

Mfiles ist ein Char mit den Dateinamen

100V
200V
300V

Jetzt muss ich diese irgendwie zu einem Variablennamen auslesen...
Schon mal vielen Dank für die Hilfe


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 24.11.2011, 13:50     Titel: Re: Variablenname aus einem Char auslesen
  Antworten mit Zitat      
Hallo Tormentum,

Zunächst ein paar Kommentare:
Code:
% Das Löschen aller Funktionen aus dem Speicher ist vollkommen überflüssig:
clear all;

% Ist das Löschen der Variablen wirklich hilfreich?!
clear;

if exist('Neue Messung.dir')  % Meinst Du: exist('Neue Messung', 'dir')  ?!

...
if pathname == 0  % pathname kann ein String sein! Besser: isequal(pathname, 0)
return                                                       %Programm beenden
end
...

Nun zur Frage, wie man aus den Datei-Namen Variablen-Namen macht: Am besten gar nicht! Das dynamische Erzeugen von Variablen ist ausgesprochen anfällig für Bugs, kaum debugbar und macht Matlab massiv langsamer. Siehe dazu ein paar hundert(?) meiner Beiträge über "eval" und "assignin".
Verwende besser "dynamic fieldnames" - das kannst Du hier im Forum, bei Google und in der Dokumentation suchen.

Gruß, Jan
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 - 2026 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.