关于时间表排序循环的问题

2次查看(最近30天)
slowlearner
slowlearner 2020年5月12日
评论道: Shubh Sohal 5 .卡特勒姆
我有一个小项目,我打算看看是否有任何好处的V2G在瑞典只是使用一些基本的价值现在。我已经做了这个时间表,我有8760行,列如[datetime spotprices]基于xlxs文件发布在Nordpool,顺便说一下,这是旧数据。现在,现货价格通常是提前一天通过API发布的,带有24小时的值,所以为了让我的模拟更真实,我将表转换为24小时循环表,如:
k = 1;
毫米= 1:24:8760-23%行以分隔它们
Y {k} = (: mm: mm + 23日);%存储它们在单独的Y{k}中,其中k是1:36 65
k = k + 1;
结束
s =重塑(Y, 365, (1);
清晰的k
现在,我已经单独做了一些函数来计算充电和驾驶距离,但为了使它更“智能”,我想我需要看到哪个小时是最便宜的,以便应用V2G功能,并使一些利润母鸡下面的外部循环…目前,我只是做一个disp(")在最内部的循环,看看它是否所有的工作,因为它应该。
但是我不能休息去工作如果有人有更好的办法我很感激你的建议。我还是个新手,几周前刚开始学matlab
我= 0;
g = 0;
q = 0;
m = 1:1:365
bi = sortrows ({m, 1},“spotpris”);%每天对s{k}排序
C = bi (: 1:6);%定义了一天中最便宜的6个小时
D = bi (: 7:12);%定义了一天中第二便宜的6个小时
: E = bi(聪明);%定义了一天中第二昂贵的6个小时
F = bi (19:24:);%定义了一天中最昂贵的6个小时
g = g + 1记录每一天
q = 1:1:24%每小时运行1次迭代,直到24小时
我+ 1 =记录时间
如果ismember (A.tid (tid(我,1)),C {1, g} .tid)% = = true
disp (“收!”
elseifismember (A.tid (tid(我,1)),D {1, g} .tid)% = = true
disp (“收费! !如果需要的话,可以吗?”
elseifismember (A.tid (tid(我,1)),E {1, g} .tid)% = = true
disp ('仅在soc <0.3时充电(使行程回家)或放电,如果soc是凉爽的&& batspoprise是好的'
elseifismember (A.tid (tid(我,1)),F {1, g} .tid)% = = true
disp (“只有在soc很酷的情况下才放电&&蝙蝠spotpris是好的”
其他的g > = 2 & &我> = 482天后停止一切
打破
结束
结束
结束
清晰的我j k m g
(编辑)
3评论
Shubh Sohal
Shubh Sohal 5 .卡特勒姆
除了@Sindar提供的建议,查看timerange的文档参考肯定会有帮助。

登录评论。

答案(0)

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!