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 autmatisch auslesen

 

Absolut_Beginner
Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 27.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.08.2018, 13:56     Titel: struct autmatisch auslesen
  Antworten mit Zitat      
Hey,

ich habe einen 1x1 struct = a. In a enhalten sind wieder drei mal 1x1 structs, dann je wieder 5 1x1 structs und so weiter. Insgesamt besteht der ursprüngliche struct dann aus acht Unterebenen. Meine Frage ist nun, wie ich bestimmte Teile des Structs automatisch auslesen kann.
Also bsp. hätte ich gerne a.b.c.d(davon dann gerne alle structs).e.f.(hier auch wieder alle).g.
Ist das verständlich? Einzeln anweisen kann ich dies schon, aber ist sehr mühsam...
Wie ist es denn möglich alle structs der ebene d und f beispielsweise zu berücksichtigen. Am schluss hätte ich gerne eine Matrix, in der die ganzen Werte drin stehen.
Ist das automatisch überhaupt möglich?

Liebe Grüße
Private Nachricht senden Benutzer-Profile anzeigen


J0nas
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 10.09.15
Wohnort: ---
Version: ab 2016a
     Beitrag Verfasst am: 03.08.2018, 06:29     Titel:
  Antworten mit Zitat      
Hallo Absolut_Beginner,

du willst also am Anfang eine Eingabe machen welche Ebenen du gerne herausziehen möchtest (z.B. "4" und "6"), und alle Einträge der Ebenen (4 -> also "d" und "6" -> also "f") soll er dir dann in eine Matrix schreiben? Sortiert nach:
- Höchste, gewählte Ebene zuerst, dann die nächst niedrigere, usw.?
- Erster Eintrag der höchsten Ebene zu erst, dann deren gewählte Unterebenen, dann nächster Eintrag der höchsten Ebene mit deren Unterebenen, usw.??
- Oder pro Spalte immer die Einträge einer Ebene?

Eigentlich kann man (fast) alles automatisieren, was man auch manuell hinbekommt Wink Wenn man nicht weiß wie sich das am besten automatisieren lässt, einfach mal mit Schleifen anfangen. Am Schluss kann man die dann eventuell noch ersetzen.

Falls du bis heute Abend nicht weiter kommst kann ich da mal bisschen was zusammen hacken. Aber es hilft einem natürlich immer mehr, wenn man selbst auf eine Lösung kommt Rolling Eyes

Grüße
Jonas

PS: Eventuell kannst du (falls erlaubt) ja mal so ein Struct hier hochladen. Dann muss ich mir das nicht erst selbst erstellen Laughing
_________________

1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
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: 03.08.2018, 12:26     Titel: Re: struct autmatisch auslesen
  Antworten mit Zitat      
Hallo Absolut_Beginner,

Ein tief-verschachtelter Struct ist zum automatischen Auslesen eine wirklich sehr schlechte Wahl. Je komplizierter die Datenstruktur, desto komplizierte die Methode um auf die Daten zuzugreifen. Wenn dieser Zugriff arg zu komplex wird, ist dies ein sicheres Zeichen dafür, dass man sich über eine sinnvollere Representation Gedanken machen sollte.

Mit einem mehrdimensionalen numerischen Array, wäre die Lösug ein Einzeiler.

Aber möglich ist es natürlich.

Zitat:
Also bsp. hätte ich gerne a.b.c.d(davon dann gerne alle structs).e.f.(hier auch wieder alle).g. Ist das verständlich?

Ungefähr, aber noch nicht eindeutig. Mit welchen Inputs definierst Du, welche Ebenen Du bekommen möchtest? Kennst Du die Namen der Felder oder nur die Tiefe der Verschachtelung?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.08.2018, 11:35     Titel:
  Antworten mit Zitat      
vielen Dank für die Antwort.

Also ich habe leider nur das struct, und das habe ich selbst nicht erstellt...aus einem struct ein mehrdimensionalen numerischen Array zu machen funktioniert dann wohl nicht, oder?

Die Namen der Felder kenne ich. Mit fieldnames greife ich auf die einzelnen Felder zu. Das funktioniert auch ganz gut. Allerdings eben nicht automatisch...Habe es auch schon mittles einer GUI versucht, dass es dadurch ein wenig übersichtlicher wird. Aber selbst da habe ich dann das Problem, wenn ich von eine bestimmte Eben alle Daten haben möchte, dann funktioniert dies nicht.

LG
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 06.08.2018, 18:19     Titel:
  Antworten mit Zitat      
Hallo Anonymous,

Du hast noch nicht erklärt, was Deine Inputs sind. Um einen Vorschlag probieren zu können, wäre es hilfreich, wenn Du so einen Struct hochladen könntest. Ich würde gerne einen Vorschlag posten, aber nur ungerne Zeit damit vertrödeln etwas falsches über Deine Daten zu raten.

Es geht wahrscheinlich direkt mit dem subsref Befehl.

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