我觉得你真的在滥用结构数组。您可能需要重新考虑数据的组织方式。您可能会发现MathWorks 中的这段视频很有帮助(评论也一样)。
首先让我们建立一个结构数组的示例结构数组,就像你拥有的那样
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]
如果所有单元格的大小相同,您可以将它们转置或将它们连接成一个矩阵。
现在,如果要更改存储在每个 Date 实例中的值,可以使用:
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]
是的,它非常混乱和混乱。