how do i run a loop that extract some file into nested structure

gaitvariable is the structure that i have. Inside that there are more structures called P#. Each P# contains more row vectors. I would like to create a loop that give me the concatanation of the pic's vector, as follow:
t_stride_total=[t_strideP345,t_strideP89....]
I only started the code because I found difficulties with fields of structure
adult_abs=[];
adult_rel=[];
filename = 'gaitvariables_adults.mat';
T = load(filename);
C = struct2cell(T);
folder= C{1}
D= struct2cell(folder);
subfolder= D{1}

 采纳的回答

Try something like this
S.a = [1 2 3]; % example struct
S.P123.t_stride = [4 5 6];
S.P345.t_stride = [3 2 1];
S.P1234.t_stride = [7 6 8];
names = fieldnames(S);
t_stride = cell(1,numel(names));
for i=1:numel(names)
name = names{i};
if name(1)=='P'
t_stride{i} = S.(name).t_stride;
end
end
t_stride = [t_stride{:}];

10 个评论

Can you attach your data as a .mat file?
load gaitvariables_adults.mat
names = fieldnames(gaitvariables);
t_stride = cell(1,numel(names));
for i=1:numel(names)
name = names{i};
if name(1)=='P'
t_stride{i} = S.(name).t_stride;
end
end
t_stride = [t_stride{:}];
and the error is this
Unable to resolve the name S.P431S1.t_stride.
Error in fase3 (line 12)
t_stride{i} = S.(name).t_stride;
This line should be
t_stride{i} = gaitvariables.(name).t_stride;
I'm sorry I've understood only now how does it work, because I forgot the example struct. I deleted it because I've understood wrongly that it works without the calling of all file firslty.
Hi man, what have I to change if I need now not more final concatenation but I want a vector for each patient?
Remove this line
t_stride = [t_stride{:}];
It will give you a cell array.
I need to understand the structure better in some way. Thank you so much Ameer

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Adding custom doc 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by