Access the data from a Struct
Mostrar comentarios más antiguos
I have a struct with fields
val = struct with fields:
abstract: [1×1 struct]
body_text: [72×1 struct]
when I extract the text data in body_text using "val.body_text.text" I got 72*1 struct. But when I try "A = val.abstract.text", I got only the first struct of the 72 structs. How can I put all these [72×1 struct] into A?
Thanks!
3 comentarios
dpb
el 30 de Mzo. de 2020
"when I try "A = val.abstract.text"
But
val = struct with fields:
abstract: [1×1 struct]
body_text: [72×1 struct]
so val.abstract.text is either invalid reference or is the name of the 1x1 struct under val.abstract
The array of 72 stuct is contained in the val struct field .body_text
It isn't clear why you think there should be more than one element from the reference above...of course, we can't see what the content of these embedded struct is so we've no idea what are fieldnames thereof.
Seems like a very convoluted nested storage--my first recommendation would be to see if you can't somehow simplify this drastically.
Ameer Hamza
el 30 de Mzo. de 2020
''so val.abstract.text is either invalid reference or is the name of the 1x1 struct under val.abstract'''
Not necessarily. For example
>> s.text = '123';
s.xyz = 2;
val.abstract = s;
val.body_text = repmat(s, 1, 72);
>> val
val =
struct with fields:
abstract: [1×1 struct]
body_text: [1×72 struct]
>> val.abstract.text
ans =
'123'
Susan
el 30 de Mzo. de 2020
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Web Services en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!