我正在尝试从日期表中取出两个单独的年份。
% Date table
Datez = [2001 2;2001 5;2001 9;2001 11;2002 3;2002 5;2002 7;2002 9;2002 11;...
2003 2;2003 4;2003 6;2003 8;2003 10;2003 12;2004 3;2004 5;2004 7;...
2004 9;2004 11; 2005 10;2005 12]
我想将所有值都取为1或0。我想要从2001-11到2002-11的日期加上从2004-11到2005-11的所有值。总的来说,我应该得到一个新的向量,叫做test
:
test = [0;0;0;1;1;1;1;1;1;0;0;0;0;0;0;0;0;0;0;1;1;0] % final result
我尝试了这些组合,但是我不知道如何将这四个语句组合成一个看起来像“ test
”的向量,或者是否有更好的解决方案?
xjcr = 1:length(Datez)
(Datez(xjcr,1) >= 2001 & Datez(xjcr,2) >= 11) % greater than 2001-11
(Datez(xjcr,1) <= 2002 & Datez(xjcr,2) <= 11) % smaller than 2002-11
(Datez(xjcr,1) >= 2004 & Datez(xjcr,2) >= 11) % greater than 2004-11
(Datez(xjcr,1) <= 2005 & Datez(xjcr,2) <= 11) % smaller than 2005-11
任何想法都非常感谢,在此先感谢!
您的问题是您不想对两个项目分别进行过滤,即大于2001的年份和大于11月的月份。这样可以给您提供2001年12月而不是2002年1月的服务。我认为解决方案是将两个复合数字视为一个单一数字,以便比较运算符可以将它们作为一对进行操作。这是一个简单的方法:
Datez2 = Datez(:,1)*100 + Datez(:,2);
test = (Datez2>=200111 & Datez2<=200211) | (Datez2>=200411 & Datez2<=200511)
最好乘以12再加上(月-1)取决于您是否正在构建需要非常强大的功能,或者只是一起破解某些东西。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句