MATLAB: Access lower level fields in structure

structures

I have a structure that is setup as follows.
foo.check.W = 1
foo.check1.W = 2
foo.check2.W = 3
I would like to quickly grab all the data in foo.(all fields).W and save it to an array that i can plot it. I know i could do:
fnames = fieldnames(foo)
for i =1:length(fnames)
Wdata(i) = foo.(fieldnames(i)).W
end
But would like to know if there's a quick way to access the data without using loops.

Best Answer

Let 's try
sm = table2array(cell2table(struct2cell(foo)));
Wdata = [sm(:).W];