indexing a field in a structure

1 visualización (últimos 30 días)
matthias daeumer
matthias daeumer el 9 de Oct. de 2020
Editada: Stephen23 el 9 de Oct. de 2020
I need to save every mean from this structure into a vector. (there are 270 fields)
m_vector(1:270) = s(11).structure.mean(1:270) does not work and I am not sure why
  2 comentarios
matthias daeumer
matthias daeumer el 9 de Oct. de 2020
This is the error:
>> m_vector(1:270) = s(vv).structure.Mean(1:270)
Expected one output from a curly brace or dot indexing expression, but there were 270 results.
Stephen23
Stephen23 el 9 de Oct. de 2020
Editada: Stephen23 el 9 de Oct. de 2020
"I need to save every mean from this structure into a vector. (there are 270 fields)"
I very much doubt that there are 270 fields. Most likely you are confusing the number of fields (displayed as headers in the Variable Viewer) with the number of elements in the structure (displayed as rows). In fact these are totally independent things.
But until you actually upload the data in a mat file by clicking on the paperclip button, we will have to rely on guessing.

Iniciar sesión para comentar.

Respuesta aceptada

Stephen23
Stephen23 el 9 de Oct. de 2020
Editada: Stephen23 el 9 de Oct. de 2020
Your indexing is not correct. If s(11).structure has exactly 270 elements, then all you need is this:
out = [s(11).structure.Mean]
Read more on how to use comma-separated lists:
For an explanation of why your indexing is not correct:

Más respuestas (1)

Ameer Hamza
Ameer Hamza el 9 de Oct. de 2020
Editada: Ameer Hamza el 9 de Oct. de 2020
Try this
all_means = cell2mat(arrayfun(@(i) {[s(i).structure.mean]}, 1:numel(s)))
% or
all_means = cell2mat(arrayfun(@(s_) {[s_.structure.mean]}, s))

Categorías

Más información sobre Just for fun en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by