我正试着从一张日期表中抽出两年时间。
% 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 任何想法都是非常感谢的,谢谢提前!
发布于 2015-03-06 02:32:35
您的问题是,您不想独立地过滤两个项目,比2001年多年,比11月多几个月。这将给你2001年12月,但不是2002年1月。我相信的解决方案是把你的两个数字组合成一个数字,这样比较运算符就可以把它们当作对来操作。下面是一个简单的方法:
Datez2 = Datez(:,1)*100 + Datez(:,2);
test = (Datez2>=200111 & Datez2<=200211) | (Datez2>=200411 & Datez2<=200511)也许乘以12并加上(月份- 1)将是最好的,取决于你是在构建一些需要非常健壮的东西,或者你只是在拼凑一些东西。
https://stackoverflow.com/questions/28890488
复制相似问题