Guten Tag,MATLAB: Zugriff auf Daten in verschachtelte Struktur For-Schleife mit
Ich habe eine verschachtelte Struktur in diesem Format.
Data: [1x1 struct]
a: [1x1 struct]
a1: [10x1 double]
a2: [10x1 double]
a3: [10x1 double]
b: [1x1 struct]
b1: [10x1 double]
b2: [10x1 double]
c: [1x1 struct]
c1: [10x1 double]
c2: [10x1 double]
c3: [10x1 double]
c4: [10x1 double]
Jede Unterfelder a
, b
& c
sind Dauer Prozentsatz eines Ereignisses in Eimern. Die Anzahl der Elemente in jedem Bucket ist die Anzahl der Datensätze. Ich möchte die Bucket-Werte jedes Datensatzes summieren und den gesamten Datensatz verwerfen, wenn sie nicht 100% ergeben. Wie kann ich auf jedes Element der Buckets für a
, b
& c
Felder von Data
mit for-Schleife in einem einfachen Format zugreifen.
EDIT: Ich habe herausgefunden, wie man die Unterfelder nennen & es Elemente gibt, & nun die Prozentsätze summieren, wenn die Daten-Sets nicht bis zu 100 Hinzufügen müssen vollständig von jedem Unterfeld entfernt.
field = fieldnames(Data);
for group = 1:length(field)
for subfield = fieldnames(Data.(field{group}))
fieldSize = structfun(@(field) length(field),Data.(field{group}));
nb_datasets = fieldSize(1,1);
for jj = 1:nb_datasets
for ii = 1:length(subfield)
a_dataset_pcts(jj,ii) = Data.(field{group}).(subfield{ii})(jj,1);
end
a_pct_total(jj,:) = sum(a_dataset_pcts(jj,:));
end
end
end
Haben Sie selbst etwas probiert? –
Wie Ersetzen von '@ (Feld) Länge (Feld)' mit '@ (Feld) Mittelwert (Feld)'. –
@Mad Physicist Re-itering meine Frage oben: a1, a2, a3 sind die prozentualen Buckets für die Gruppe a. Ich würde gerne wissen, wie man auf jedes dieser Bucket-Elemente zugreift, um später mehrere Aufgaben durchführen zu können (der Mittelwert war nur ein Beispiel). Die Anzahl der Elemente in den Buckets entspricht der Anzahl der Datensätze. Die Bucket-Elemente repräsentieren Prozentsätze eines Ereignisses und die Summe von a1 (1,1), a2 (1,1), a3 (1,1) sollte sich zu 100% addieren. Eine andere Aufgabe, die weiter verfolgt wird, sollte das Entfernen des gesamten Datensatzes sein, wenn sie nicht 100% ergeben. – Bensa