Create a for cycle over an array
3 次查看(过去 30 天)
显示 更早的评论
In my case I have X different job with Y different duration
D = [2 3 4 4 5 6 7 3 ];
so job X=1 will last Y=2.
I need to write a code that give me the following result:
tin1= 0 , tfin1=2, tin2= 2 , tfin2=2+3=5, tin3= 5 , tfin3=5+4=9, tin4=9 , tfin4=9+4=13........ So "tinx" means the inital time of job x, while "tfinx" means the final time of job x. if job one finish at 2, the job two will finish at 2 plus the duration of the job 2 (3) obtaining 5, and so on.
I want to write a code that is able to generate all this value
Does someone help me? the length of D should be variable so I would like to obtain a code that is independent from its length
2 个评论
Jan
2019-9-4
I've cleaned the tags. It is not useful to use a pile of tags, which have no relation to your problem.
采纳的回答
Jan
2019-9-4
编辑:Jan
2019-9-4
Do not create a bunch of variables with an index hidden in the names: See TUTORIAL: Why and how to avoid Eval
I assume all you need is:
D = [2 3 4 4 5 6 7 3 ]
T = cumsum([0, D])
Now e.g. T(1) and T(2) contain everything you want. This is much better than tin(1) and tfin(1). If you really need 2 variables:
Tini = T(1:end-1);
Tfin = T(2:end);
更多回答(2 个)
darova
2019-9-4
It is a job for cumsum() function:
D = [2 3 4 4 5 6 7 3 ];
tin1 = [0 2 5 9 13 18 24 31];
tin2 = [2 5 9 13 18 24 31 34];]
0 个评论
Fabio Freschi
2019-9-4
Try this
>> tfin = cumsum(D)
tfin =
2 5 9 13 18 24 31 34
>> tin = [0 tfin(1:end-1)]
tin =
0 2 5 9 13 18 24 31
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Special Functions 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!