【问题标题】:Aggregate a matrix of dates with a for loop of a vector- matlab使用向量的 for 循环聚合日期矩阵 - matlab
【发布时间】:2017-07-10 14:28:23
【问题描述】:

我有一个包含日期的矩阵,我想将这些日期按行聚合为句点:

[01-01-2017;31-12-2017] [01-01-2018;31-12-2018] [01-01-2019;31-01-2019]

这是我的代码:

a=[ 20170206 20170506 20170806 20171106 20180206 20180506 20180806 20181106
20190206 20190506;
20170402 20180402 0 0 0 0 0 0 0 0;
20170228 20170831 20180228 0 0 0 0 0 0 0;
20171016 20181016 20191016 0 0 0 0 0 0 0;
20171025 0 0 0 0 0 0 0 0 0]; %matrix with dates to aggregate

[r1,c1]=size(a);
p = [3;2;2;3;1]; %number of periods per line

yi=[2017;2017;2017;2017;2017];
mi=[01;01;01;01;01];
di=[01;01;01;01;01];


[m,n]=size(p);
datas(1:r1,1)=yi*10000+mi*100+di;
for i=1:m
  for j=2:p(i)
    datas(1:r1,j)=(yi+j-1)*10000+mi*100+di;
  end
end

我的结果是

数据=[20170101 20180101 20190101; 20170101 20180101 20190101; 20170101 20180101 20190101; 20170101 20180101 20190101; 20170101 20180101 20190101]

但我想要一个这样的矩阵:

数据= [20170101 20180101 20190101; 20170101 20180101 0; 20170101 20180101 0; 20170101 20180101 20190101;20170101 0 0]

【问题讨论】:

  • 请提供minimal reproducible example 和/或明确说明问题(您当前的输出是什么?)。
  • @m7913d 已经澄清,你能帮忙吗?
  • @m7913d 已经找到了,谢谢

标签: matlab for-loop matrix vector


【解决方案1】:
    a=[ 20170206 20170506 20170806 20171106 20180206 20180506 20180806 20181106 20190206 20190506;
    20170402 20180402 0 0 0 0 0 0 0 0;
    20170228 20170831 20180228 0 0 0 0 0 0 0;
    20171016 20181016 20191016 0 0 0 0 0 0 0;
    20171025 0 0 0 0 0 0 0 0 0]; %matrix with dates to aggregate

[r1,c1]=size(a);
p = [3;2;2;3;1]; %number of periods per line

[m,n]=size(p);
max=max(p);


yi=[2017;2017;2017;2017;2017];
mi=[01;01;01;01;01];
di=[01;01;01;01;01];

datas(1:r1,1)=yi(1:r1)*10000+mi(1:r1)*100+di(1:r1);

for i=1:r1
    for j=2:max
        if p(i)<j
            datas(i,j)=0;
        else
            datas(i,j)=(yi(i)+j-1)*10000+mi(i)*100+di(i);
        end
    end
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 2019-05-27
    • 2016-06-04
    相关资源
    最近更新 更多