将大型结构中的所有值收集到一个变量中?

时间:2012-01-04 13:27:03

标签: matlab structure

我有一个结构:

年(1:10).months(1:12).Days(1:30).Values_T

年(1:10).months(1:12).Days(1:30).Values_S

如何从Values_T收集所有值并将它们放入单个变量?

我想要一个名为:Aggregate_Values_T的变量,该变量将包含每个月和每年每天的所有值。

我尝试过循环,但每次都没有成功......

感谢任何帮助..

发布后,我想出了一个解决方法:

pp = [];
for yy = 1:4
 for mm = 1:12
    for dd = 1:length(Year(yy).Month(mm).Day)
        if isempty(Year(yy).Month(mm).Day(dd).Value)==1
            continue
        else            
        tt = Year(yy).Month(mm).Day(dd).Value;
        pp(end+1,1) = [tt]
        end
    end
 end
end

它有效但却有点混乱......如果有人知道更清洁,更快捷的方式,我将不胜感激......

1 个答案:

答案 0 :(得分:1)

您可以按照年 - >月> - >天 - >值

的顺序进行连锁
aggregate_Months = cat(2,years(:).months);
aggregate_Days = cat(2,aggregate_Months(:).Days);
aggregate_Values_T = cat(2,aggregate_Days(:).Values_T);