Date in a loop
2 次查看(过去 30 天)
显示 更早的评论
Hi All,
I am using the following code to use a sorted file which matches elements of sorted file with financial time series table/objects of two price series. I don't know how to run a loop which changes dates as well alongwith matrix elements. The code is as follows:
for r= 2:40
for c=1:5
if sorted{c,r}=='Alpha';
sortednew{c,r}= fts2mat(Apple.ARG('1-Jan-0019')) -fts2mat(Applenew.ARG('1-Jan-0019'));
elseif sorted{c,r}=='Beta';
sortednew{c,r}=fts2mat(Apple.BXD('1-Jan-0019')) - fts2mat(Applenew.BXD('1-Jan-0019'));
elseif sorted{c,r}=='theta';
sortednew{c,r}=fts2mat(Apple.ASD('1-Jan-0019')) - fts2mat(Applenew.ASD('1-Jan-0019'));
else sorted{c,r}=='gamma';
sortednew{c,r}=fts2mat(Apple.STA('1-Jan-0019')) - fts2mat(Applenew.STA('1-Jan-0019'));
end;
end;
end;
I want to add a date loop after the very first loop which increments the date by 7days (weekly) and that incremented date is then used for indexing in the forthcoming statements in place of '1-Jan-0019':
sortednew{c,r}= fts2mat(Apple.ARG('1-Jan-0019')) -
fts2mat(Applenew.ARG('1-Jan-0019'))
Any help will be highly appreciated
Regards,
Amd.
1 个评论
Jan
2012-4-14
Do not use "sorted{c,r}=='Alpha'" to compare strings, because this fails if the number of characters do not match. Use STRCMP instead.
采纳的回答
Walter Roberson
2012-4-14
startdatevec = [19, 1, 1]; %year 19 ??, month 1, day 1
for weekno = 1 : 20
startedate = datestr(startedatevec);
[....]
startedatevec(3) = startdatevec(3) + 7;
end
Don't worry about the date number becoming 36 and 43 and so on: datestr will automatically do the proper wrapping to find the right day of the right month.
3 个评论
Walter Roberson
2012-4-15
Do not quote Datee.
sortednew{c,r}= fts2mat(Apple.ARG(dateee)) -fts2mat(Applenew.ARG(datee));
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Time Series Objects 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!