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

struct mit unbekanntem Inhalt auslesen

 

MJR10
Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 12.12.11
Wohnort: ---
Version: R2010b
     Beitrag Verfasst am: 01.02.2012, 15:46     Titel: struct mit unbekanntem Inhalt auslesen
  Antworten mit Zitat      
Hallo,
ich habe ein Problem nähmlich dass ich einen Struct auslesen soll bei dem ich den Inhalt nicht kenne.
Der Hintergrund ist der, dass wir Versuche machen und in einem bestimmten Winkelschritt Messungen machen. Momentan alle 5 Grad. Die Daten landen im Struct Messung.
schaut dann ungefähr so aus:
Versuch.alfa_0_Grad
Versuch.alfa_5_Grad
Versuch.alfa_10_Grad
usw...

in Versuch.alfa_10_Grad sind dann noch weitere Daten gespeichert. Beispielsweise n1, n2, n3, p1, p2, temp, Messwinkel...

jetzt soll aber alles mal umgestellt werden und wir würden gerne in 3 Grad Schritten messen, die Importfunktion lässt daraus dann
Versuch.alfa_0_Grad
Versuch.alfa_3_Grad
Versuch.alfa_6_Grad
usw...
werden. Für die Analysefunktion muss ich jetzt irgendwie an den Winkelschritt kommen. Die Gradzahlen wären ja auch noch im Struct
Versuch.alfa_##_Grad.Messwinkel gespeichert. Nur weiß ich eben nicht wie ich da dran komme wenn ich vorher nicht weiß wie die Winkel heißen. Kann ich also vielleicht irgendwie immer auf den ersten und den zweiten Struct zugreifen und mir da die Winkel rausziehen, so dass ich den Winkelschritt berechnen kann?
Private Nachricht senden Benutzer-Profile anzeigen


rainer87
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 22.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.02.2012, 16:59     Titel:
  Antworten mit Zitat      
Code:

%feldernamen bekommen
names=fieldnames(Versuch) %names ist nun ein cellarray
%grad zahlenherausbekommen:
zahlen_grenzen=strfind(names{index},'_')
gradzahl=str2num(name{index}(zahlen_grenzen(1)+1:zahlen_grenzen(2)-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: 01.02.2012, 18:11     Titel: Re: struct mit unbekanntem Inhalt auslesen
  Antworten mit Zitat      
Hallo MJR10,

Wie Du bemerkst, ist es ausgesprochen hinderlich, wenn die Namen der Variablen -oder hier der Felder- numerische Informationen enthalten. Es wäre deutlich geschickter, und auch effizienter, die numerischen Informationen auch als numerische Variablen zu speichern. Z.B.:
Code:
Versuch.alfa(1).Grad = 0;
Versuch.alfa(1).Wert = rand(3);
Versuch.alfa(2).Grad = 5;
Versuch.alfa(2).Wert = magic(4);
...

Die eigentlichen Werte mit der Representation innerhalb des Programms zu vermischen ist immer eine schlechte Idee. Wenn Du z.B. das Programm später so ausbauen möchtest, dass es die Daten in 0.5 Grad-Schritten bearbeitet, ist das mit der obigen Methode trivial, mit in den Namen eingebetteten Zahlen aber der reine Horror.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
MJR10
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 12.12.11
Wohnort: ---
Version: R2010b
     Beitrag Verfasst am: 02.02.2012, 09:00     Titel:
  Antworten mit Zitat      
Naja beim tägliche Arbeiten von Hand ist es aber um einiges hilfreicher wenn man nicht erst immer nachschauen muss um welche Daten es sich handelt sonder das gleich am Namen erkennt.
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: 02.02.2012, 23:10     Titel:
  Antworten mit Zitat      
Hallo MJR10,

Deine Orginal-Frage hört sich so an, als sei das einfügen der Daten in die Feldnamen nicht bequem.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
MJR10
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 12.12.11
Wohnort: ---
Version: R2010b
     Beitrag Verfasst am: 03.02.2012, 09:36     Titel:
  Antworten mit Zitat      
die daten werden leider nicht nur automatisch sondern auch noch teilweise von hand ausgewertet. bei automatischen auswerten ist es nicht so praktisch, jedoch beim auswerten von hand umso mehr. Ich bin bin leider noch nicht so lange dabei, aber so ist das system leider nur mal.
ich weiß das alles ist nicht ganz optimal aber so funktioniert es momentan noch am besten. aber eine umstellung würde sicher in naher zukunft sinn machen.
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.