Matlab Zugriff auf Nested Structures

OP #4661536
Lesenswert?
• ▲
▼
Hallo,

ich habe in Matlab eine Datenstruktur der Form
raum.kueche = array
raum.wohnzimmer = array
raum.schlafzimmer = array

wobei array ein zweidimensionales Array ist, in dem die eigentlichen 
Daten stehen. Die Struktur hab ich so gewählt, weil ich es gut lesbar 
finde, ohne ständig nachzuschauen, welcher Raum jetzt wieder welche 
Nummer hat und zudem die Arrays unterschiedliche größen haben können und 
damit Änderungen einfach sind.

Jetzt stehe ich aber vor dem Problem, das ich gerne mit einer Funktion 
bestimme Rechnungen auf alle Arrays ausführen möchte, aber mit dem 
Zugriff darauf nicht klar komme (oder es vielleicht garnicht geht, so 
wie ich mir es vorstelle.
Ich würde meiner Funktion gerne einfach die Variable raum übergeben und 
in dieser dann per Schleife die einzelnen Unterstrukturen abarbeiten. 
Leider habe ich bisher keine Möglichkeit gefunden auf die 
unterstrukturen zuzugereifen, ohne dies hart zu codieren.

Zum veranschauliche:
ich würde gerne so etwas haben wie raum.(1) statt raum.kueche um auf das 
Array dahinter zuzugreifen.

Ich hoffe, es kann mir jemand dabei weiter helfen.

Gruß Kai
Gast #4680423
Lesenswert?
• ▲
▼
da gibt es diverse Moeglichkeiten. Nehmen wir an, die Funktion f soll 
auf alle Felder angewandt werden:


eleganteste Loesung mit structfun:
structfun(@f,raum);

auch moeglich mit dynamischen Feldnamen:
fn=fieldnames(raum);
for i=1:numel(fn)
   f( raum.(fn{i}) );
end

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren