Please help extract values from a struct

5 visualizzazioni (ultimi 30 giorni)
Hi all, I created a struct using a for loop and need to extract values from it. So for instance, for field T with value = 728, it would produce the first row as shown in the photo.
Thanks
code
for CPR = 10:10:50
for BPR = 4:1:9
for FPR = 0.5:0.1:2
for TO4 = 500:200:1300
for m = 80:20:400
[ST,TSFC,T,] = turbofan(CPR,BPR,FPR,TO4,m)
Data(count).CPR = CPR;
Data(count).BPR = BPR;
Data(count).FPR = FPR;
Data(count).TO4 = TO4;
Data(count).ST = ST;
Data(count).TSFC = TSFC;
count = count+1;
end
end
end
end
end
  2 Commenti
Turlough Hughes
Turlough Hughes il 24 Apr 2020
The first row as shown in the photo
So you want to find the index in field T where the value is close to 728 and then return values from all other fields corresponding to that index?
Joel Ogualiri
Joel Ogualiri il 24 Apr 2020
Modificato: Joel Ogualiri il 24 Apr 2020
correct and then store them in a new struct with all the corresponding fields

Accedi per commentare.

Risposta accettata

Ameer Hamza
Ameer Hamza il 24 Apr 2020
Modificato: Ameer Hamza il 24 Apr 2020
You can read about details of struct array here: https://www.mathworks.com/help/matlab/matlab_prog/create-a-structure-array.html. To access the field T in the first row, you can access it like this
Data(1).T
Edit:
To extract the rows close to 728, you can use something like this
value = 728;
tolerance = 0.005; % tolerance of value around 728
idx = abs([s.T] - value) < tolerance;
new_Data = Data(idx);
  6 Commenti
Ameer Hamza
Ameer Hamza il 24 Apr 2020
I am glad to be of help.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Structures in Help Center e File Exchange

Tag

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by