How to unstructure the structure data?

4 visualizzazioni (ultimi 30 giorni)
Ammy
Ammy il 18 Set 2021
Modificato: Image Analyst il 18 Set 2021
I want to find the mean of all rows in the data set .
But the data in the workspace is in the following formate.
let A be data set.
A=<54×10 struct>
where each row of A is in the following format
<1x1 struct> <1x1 struct> <1x1 struct> <1x1 struct> <1x1 struct> <1x1 struct> <1x1 struct> <1x1 struct> <1x1 struct> <1x1 struct>
How can I find the mean of each row of A.
  3 Commenti
Rik
Rik il 18 Set 2021
Your data is a struct array. Does it have only 1 field?

Accedi per commentare.

Risposta accettata

Rik
Rik il 18 Set 2021
If you use the normal dot indexing with a struct array, that will generate a comma separated list.
You can put that between brackets to concatenate the resulting values, but you will need to use reshape to restore the original shape:
fn=websave('DATA.mat','https://www.mathworks.com/matlabcentral/answers/uploaded_files/742259/DATA.mat');
S=load(fn);npcr=S.npcr
npcr = 54×10 struct array with fields:
npcr_score
reshape([npcr.npcr_score],size(npcr))
ans = 54×10
0.9959 0.9965 0.9963 0.9966 0.9959 0.9964 0.9963 0.9963 0.9958 0.9963 0.9960 0.9962 0.9962 0.9960 0.9966 0.9960 0.9962 0.9960 0.9962 0.9962 0.9959 0.9965 0.9963 0.9966 0.9959 0.9964 0.9963 0.9963 0.9958 0.9963 0.9960 0.9965 0.9960 0.9959 0.9966 0.9957 0.9960 0.9963 0.9960 0.9965 0.9961 0.9964 0.9961 0.9960 0.9962 0.9958 0.9961 0.9960 0.9963 0.9962 0.9961 0.9964 0.9961 0.9960 0.9962 0.9958 0.9961 0.9960 0.9963 0.9962 0.9959 0.9959 0.9958 0.9962 0.9960 0.9962 0.9958 0.9960 0.9958 0.9956 0.9960 0.9962 0.9962 0.9960 0.9966 0.9960 0.9962 0.9960 0.9962 0.9962 0.9959 0.9965 0.9963 0.9966 0.9959 0.9964 0.9963 0.9963 0.9958 0.9963 0.9960 0.9962 0.9961 0.9960 0.9963 0.9963 0.9961 0.9961 0.9962 0.9962
  6 Commenti
Ammy
Ammy il 18 Set 2021
Sorry ,
Sure
thanks
Image Analyst
Image Analyst il 18 Set 2021
Modificato: Image Analyst il 18 Set 2021
@Rik, this happens so often that's why I (when I remember) to attach their data to my answer so that in case they delete it (which for some reasons they often do), it's still there. Perhaps you still have it, if you downloaded it, and can attach it. I always download rather than read it directly off the Mathworks server because (as we've found out here), if the user deletes it, it's no longer on the Mathworks server.
Also if it's the user's first or second post (not the case here), I also copy the question and attach it as a text file "OriginalQuestion.txt" to my Answer. And if it's their first or second question and they have flags that said they deleted their question, I just won't answer, and sometime tell them why I won't answer.

Accedi per commentare.

Più risposte (0)

Categorie

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

Community Treasure Hunt

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

Start Hunting!

Translated by