how to load the data from strut

I want to load the data which can be accessed by
VarName = Cell1.cyc++++.v()
where ++++ indicates the number like
0000, 0100, 0200, 0300,......1000,1100, ....8000, 8100, 8200.
I want to create a matrix from it, where it will contain the only 1st and last element of v() for all cyc++++ (0000 to 8200)
so how can I do it without loading each file one by one?
please help.....Thanking in advance.

4 个评论

Are these in different files, or already in one struct ?
struct Cell1 contains cyc++++ (0000 to 8200), then each cyc++++ contains Ch1, Cd1, Q1 as struct and then each Ch1 contains v (3371 by 1) matrix, t (3371 by 1) matrix, I (3371 by 1) matrix
so it is Cell 1---> cyc++++--->Ch1--->v()
sorry .... it is
VarName = Cell1.cyc++++.Ch1.v()
Stephen23
Stephen23 2019-10-15
编辑:Stephen23 2019-10-15
The best solution is to redesign your data so that you are not forcing meta-data into fieldnames.
Forcing meta-data into fieldnames is one way that beginners force themselves into writing slow, complex, obfuscated, buggy code (exactly as you are finding out now). Your code would be much simpler if you stored the meta-data in the variables rather than in the fieldnames.

请先登录,再进行评论。

回答(1 个)

In the case where it is already loaded into Cell1 then
output_matrix = [structfun(@(S) S.V(1), Cell1(:)), structfun(@(S) S.V(end), Cell1(:))];

2 个评论

Sorry ....there is some correction in question
it is
VarName = Cell1.cyc++++.Ch1.v()
output_matrix = [structfun(@(S) S.Ch1.v(1), Cell1(:)), structfun(@(S) S.Ch1.v(end), Cell1(:))];
provided that your Ch1 are scalar structures.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Structures 的更多信息

标签

提问:

2019-10-14

编辑:

2019-10-15

Community Treasure Hunt

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

Start Hunting!

Translated by