如何循环日期向量,限制是月,年和小时??

6次浏览(过去30天)
%for k=xa:1:y2 xa是我用函数发现的数据的第一年y2是最后一年
ka = find(IntervaloHorarioDateVec(:,1) == 2015);
kb = find(IntervaloHorarioDateVec(:,1) == 2016);
kc = find(IntervaloHorarioDateVec(:,1) == 2017);
kd = find(IntervaloHorarioDateVec(:,1) == 2018);
% 1 - 12
%, m = 1:12
ke = find(IntervaloHorarioDateVec(:,2) == 1);
kf = find(IntervaloHorarioDateVec(:,2) == 2);
kg = find(IntervaloHorarioDateVec(:,2) == 3);
kh = find(IntervaloHorarioDateVec(:,2) == 4);
ki = find(IntervaloHorarioDateVec(:,2) == 5);
kj = find(IntervaloHorarioDateVec(:,2) == 6);
kk = find(IntervaloHorarioDateVec(:,2) == 7);
kl = find(IntervaloHorarioDateVec(:,2) == 8);
km = find(IntervaloHorarioDateVec(:,2) == 9);
kn = find(IntervaloHorarioDateVec(:,2) == 10);
ko = find(IntervaloHorarioDateVec(:,2) == 11);
kp = find(IntervaloHorarioDateVec(:,2) == 12);
Kq = ismember(ka,ke,“行”);
Kr = find(kq);
Ks = ismember(ka,kf,“行”);
Kt = find(ks);
Ku = ismember(ka,kg,“行”);
Kv = find(Kv);
Kw = ismember(ka,kh,“行”);
Kx = find(kw);
Ky = ismember(ka,ki,“行”);
Kz = find(ky);
Kaa = ismember(ka,kj,“行”);
Kab = find(kaa);
Kac = ismember(ka,kk,“行”);
Kad = find(kac);
Kae = ismember(ka,kl,“行”);
Kaf = find(kae);
Kag = ismember(ka,km,“行”);
Kah = find(kag);
Kai = ismember(ka,kn,“行”);
Kaj = find(kai);
Kak = ismember(ka,ko,“行”);
Kal = find(Kal);
Kam = ismember(ka,kp,“行”);
Kan = find(Kan);
...坚持到2018年
一天中的每一个小时…
k1 = find(IntervaloHorarioDateVec(:,2) == 0);
k2 = find(IntervaloHorarioDateVec(:,2) == 1);
k3 = find(IntervaloHorarioDateVec(:,2) == 2);
k4 = find(IntervaloHorarioDateVec(:,2) == 3);
k5 = find(IntervaloHorarioDateVec(:,2) == 4);
k6 = find(IntervaloHorarioDateVec(:,2) == 5);
k7 = find(IntervaloHorarioDateVec(:,2) == 6);
k8 = find(IntervaloHorarioDateVec(:,2) == 7);
k9 = find(IntervaloHorarioDateVec(:,2) == 8);
k10 = find(IntervaloHorarioDateVec(:,2) == 9);
k11 = find(IntervaloHorarioDateVec(:,2) == 10);
k12 = find(IntervaloHorarioDateVec(:,2) == 11);
k13 = find(IntervaloHorarioDateVec(:,2) == 12);
k14 = find(IntervaloHorarioDateVec(:,2) == 13);
k15 = find(IntervaloHorarioDateVec(:,2) == 14);
k16 = find(IntervaloHorarioDateVec(:,2) == 15);
k17 = find(IntervaloHorarioDateVec(:,2) == 16);
k18 = find(IntervaloHorarioDateVec(:,2) == 17);
k19 = find(IntervaloHorarioDateVec(:,2) == 18);
k20 = find(IntervaloHorarioDateVec(:,2) == 19);
k21 = find(IntervaloHorarioDateVec(:,2) == 20);
k22 = find(IntervaloHorarioDateVec(:,2) == 21);
k23 = find(IntervaloHorarioDateVec(:,2) == 22);
k24 = find(IntervaloHorarioDateVec(:,2) == 23);
Lia = ismember(k1,kr);
Idrow = find(Lia);
Lia = ismember(k1,kr);
Idrow = find(Lia);
Lia = ismember(k1,kr);
Idrow = find(Lia);
Lia = ismember(k1,kr);
Idrow = find(Lia);
Lia = ismember(k1,kr);
Idrow = find(Lia);
Lia = ismember(k1,kr);
Idrow = find(Lia);
Lia = ismember(k1,kr);
Idrow = find(Lia);
...至00:00至24:00
...从2015年到2018年,1-12月,0-23小时
所以我想创建一个循环,我可以找到一年中的00个小时,假设是2015年的数据,或者2017年的数据,或者两者都有,
%在那一年里,我想找到月份,假设1月(01<-月份编号)或3月(03),
%,在该年和月,我想找到00:00小时或12:00的位置,在一个小时的数据中
我想要找到第一年第一个月的凌晨1点的所有数据,第一个月的凌晨1点
%等,直到23:00小时,2月到12月也是如此,直到y2(最后一年)结束。
1评论
保罗奥利维拉
保罗奥利维拉 2019年1月31日
我正在尝试这样做,但它没有在kf中分配任何东西,因为ka只接收去年的数据,而月份只接收2017年12月(12)的数据,因为2018年的数据不结束于12月,而ke只接收一天的最后一个小时。
% 2015 - 2018
y2 k = xa: 1:
ka = find(IntervaloHorarioDateVec(:,1) == k);
% 1 - 12
对于m = 1:12
kb = find(IntervaloHorarioDateVec(:,2) == m);
Kc = ismember(ka,kb,'rows');
Kd = find(kc);
n = 0:1:23
ke = find(IntervaloHorarioDateVec(:,4) == n);
Kf = ismember(kd,ke,'rows');
Kg = find(kc1);
结束
结束
结束

登录评论。

接受的答案

1月
1月 2019年1月31日
编辑:1月 2019年1月31日
逻辑索引:
K = xa:y2
ka = (IntervaloHorarioDateVec(:,1) == k);%未发现
M = 1:12
kb = (IntervaloHorarioDateVec(:,2) == m);
N = 0:23
ke = (IntervaloHorarioDateVec(:,4) == n);
Match = find(ka & KB & ke);
...
结束
结束
结束
或者:
K = xa:y2
M = 1:12
N = 0:23
ke = (IntervaloHorarioDateVec(:,4) == n);
match = ismember(IntervaloHorarioDateVec(:, [1,2,4]), [ka, kb, ke],“行”);
...
结束
结束
结束

更多答案(1)

保罗奥利维拉
保罗奥利维拉 2019年2月1日
编辑:保罗奥利维拉 2019年2月1日
出于某种原因,ka去年可以运行,但kb不是跑到m在去年的最后英勇,“导致去年12月根本没有(m = 12)英勇,所以对kb只是循环之前的英勇的y2英勇的m = 12,所以,我怎么能继续循环使用,假设2015年和循环当年每月和每小时的那一年,明年去,每个月循环,小时等等,直到得到y2,我尝试使用for和continue,当m~=12时不中断,但不运行。另一个问题是,我想在单元格数组中分配match中找到的所有元素,在每个循环中。
我现在用这个代码,
例如,sadsize = 300,我想在单元格数组的300行中分配
k = 1: sadsize
y2 k = xa
ka = (IntervaloHorarioDateVec(:,1) == k);
M = 1:12
kb = (IntervaloHorarioDateVec(:,2) == m);
N = 0:23
ke = (IntervaloHorarioDateVec(:,4) == n);
Match = find(ka & KB & ke);
继续
结束
继续
结束
继续
结束
correlacaovalordiario = CorrelacaoHorariaArray(匹配);
Sada {k} = correlacaovalordiario;
结束
甚至是运行,但它分配只是最后的数据匹配在sada
2的评论
保罗奥利维拉
保罗奥利维拉 2019年2月1日
哈哈,对不起,但它工作得很好,n = 0:23,现在我想让index = index + 1也在m = 1:12写在第一个sada之后的下一个单元格(在0:23),继续循环而不覆盖sada。

登录评论。

2022世界杯八强谁会赢?

世界杯预选赛小组名单社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!世界杯预选赛小组名单

开始狩猎!

Baidu
map