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

bestimmte Variable finden

 

Alexfromgalax
Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 28.05.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.06.2019, 14:39     Titel: bestimmte Variable finden
  Antworten mit Zitat      
Ich habe eine Datei Data als 1x1 struct und ein Array Name als 104x1 cell mit den Fieldnames der Datei.
Mithilfe der regexp funktion suche ich nach dem vollen Bezeichnung der bestimmten Variablen in dem Array. Diesen vollen Namen speichere ich als 1x1 celle ab. Nun möchte ich über einen Namensvergleich die Variable aus Data samt inhalt bekommen.
Kann mir jemand weiter helfen? ich komme alleine leider nicht auf die Lösung.
Code:
Data = load(fullpath); % load the file in Data
Name = fieldnames(Data);% get fieldnames



str = Name; % where should regexp search for the variable
pat = '[^Team]_Pmanifold'; % which content must be in the name of the variable
PMFLName = regexp(str,pat,'match'); % returns a 1 when match is found
Pmanifold = (Name(~cellfun(@isempty, PMFLName)))% find the channelname of Name where PMFLName is 1
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: 13.06.2019, 16:48     Titel: Re: bestimmte Variable finden
  Antworten mit Zitat      
Hallo Alexfromgalax,

Es ist schwierig deiner Erklärung zu folgen. "Ich habe eine Datei Data als 1x1 struct" ist erst mal rätselhaft für mich. Der Code war da schon hilfreicher:
Code:
Data = load(fullpath);

Dass das aus einem File kommt, ist für die Frage nicht relevant. Eigentlich möchtest du den passenden Fieldname eines Structs mit einer regular expression finden.
Was ist das Problem mit deinem Code?

Code:
Data = load(fullpath); % load the file in Data
Name = fieldnames(Data);% get fieldnames
pat = '[^Team]_Pmanifold'; % which content must be in the name of the variable
PMFLName = regexp(Name, pat, 'match'); % returns a 1 when match is found
% Nein, das antwortet nicht 1, sondern einen Cell String mit den passenden Namen, oder?

Was soll nun mit den Namen geschehen? Vielleicht meinst Du:
Code:
Data.(PMFLName{1})

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