How to access all elements within a structured cell array without looping?
Mostra commenti meno recenti
I have a variable that look like this:
a_structure{1}.field1=vector1;
a_structure{2}.field1=vector2;
a_structure{3}.field1=vector3;
Without looping, how do I obtain the matrix that puts vector1 in column 1, vector2 in column 2 and vector3 in column 3?
Note: The {} in there is intentional. I am not using the structure(1).field1 syntax. I could get there, but would have thousands of lines of code to change.
Risposta accettata
Più risposte (1)
"I am not using the structure(1).field1 syntax"
You should be. It would allow you to use efficient syntaxes for accessing your data (i.e. like you are asking about now):
If all of the structures in the cell array have the same fields and have compatible sizes, then you can concatenate them together, e.g. where C is your cell array:
S = [C{:}]; % concatenate unfortunate cell of structs into better non-scalar structure.
M = [S.field1] % concatenate field1 vectors [S(1).field1,S(2).field1,S(3).field1,...]
Read more:
1 Commento
SteveR
il 4 Mar 2020
Categorie
Scopri di più su Structures in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!