indexing a field in a structure

1 次查看(过去 30 天)
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 个评论
matthias daeumer
matthias daeumer 2020-10-9
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 2020-10-9
编辑:Stephen23 2020-10-9
"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.

请先登录,再进行评论。

采纳的回答

Stephen23
Stephen23 2020-10-9
编辑:Stephen23 2020-10-9
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:

更多回答(1 个)

Ameer Hamza
Ameer Hamza 2020-10-9
编辑:Ameer Hamza 2020-10-9
Try this
all_means = cell2mat(arrayfun(@(i) {[s(i).structure.mean]}, 1:numel(s)))
% or
all_means = cell2mat(arrayfun(@(s_) {[s_.structure.mean]}, s))

类别

Help CenterFile Exchange 中查找有关 Just for fun 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by