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