Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从矩阵变量Matlab中取出两个日期之间的日期值_Matlab_Date_Equality_Between - Fatal编程技术网

从矩阵变量Matlab中取出两个日期之间的日期值

从矩阵变量Matlab中取出两个日期之间的日期值,matlab,date,equality,between,Matlab,Date,Equality,Between,我试着从一张日期表中取出两个独立的年份 % 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年的日

我试着从一张日期表中取出两个独立的年份

% 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 
xjcr=1:长度(Datez)
(Datez(xjcr,1)>=2001和Datez(xjcr,2)>=11)%大于2001-11
(Datez(xjcr,1)=比2004-11年大11%

(Datez(xjcr,1)您的问题是,您不想单独筛选两个项目,即大于2001年的年份和大于11月的月份。这将为您提供2001年12月,而不是2002年1月。我认为解决方案是将您的两个复合数字视为单个数字,以便比较运算符可以将它们作为一对进行操作。下面是一个示例简易方法:

Datez2 = Datez(:,1)*100 + Datez(:,2);
test = (Datez2>=200111 & Datez2<=200211) | (Datez2>=200411 & Datez2<=200511)
Datez2=Datez(:,1)*100+Datez(:,2);

test=(Datez2>=200111&Datez2=200411&Datez2如何在测试向量中定义1和0?例如,如果您使用命令
Datez(xjcr,1)>=2004
,它将给您一个1和0的向量。您只需命名这个新向量,那么
test=Datez(xjcr,1)>=2004
@tallblo谢谢你的想法,非常感谢!!将它们结合起来似乎是个诀窍。效果非常好!!我自己做得不好。我理解乘法12,但我不明白,为什么要加(月-1)。再次感谢你的时间!