我觉得你真的滥用结构数组。您可能需要重新考虑您的数据组织。您可能会发现MathWorks的this video有帮助(评论也是如此)。
首先,让我们建立结构数组的一个例子结构数组,你拥有它
Struct1 = struct;
Struct1.Data = struct;
for i = 1:3
Struct1(1).Data(i).Date = rand(1,9); % Random values instead of dates for demo
end
所有这三个日期字段可以通过
dates = {Struct1(1).Data(:).Date}
这使输出为一个单元阵列:
dates =
[1x9 double] [1x9 double] [1x9 double]
你可以转置这些或连接成一个单一的矩阵,如果全部的细胞具有相同的大小。
现在如果你想改变存储在日期的每个实例的值,你可以使用:
dates2 = {rand(4,1),rand(5,1),rand(6,1)}; % Create new cell array of random data
[Struct1(1).Data(:).Date] = dates2{:}; % set cell contents to each field
现在,输出作为一个单元阵列再次(dates3 = {Struct1(1).Data(:).Date}
)返回你刚才保存
dates3 =
[4x1 double] [5x1 double] [6x1 double]
是的,这是相当混乱和混乱。