Help in Syntax of Eval and Sprintf

3 ビュー (過去 30 日間)
ARS
ARS 2013 年 3 月 14 日
Hi,
I want to run the following expression:
*X = fts2mat(ESP('01-Jan-97::31-Dec-2012'))*
The above statemement works fine. ESP is my financial time seris(fts) container. I am getting the desired results in X.
But now I wish the dates to be passed from a cell array of date strings I have as mydate1{} and mydate2{} in place of the datestrings given in the first statement. I think it can be done via
*eval(sprintf(fts2mat(ESP('mydate1''::''mydate2'))));*
But the above gives error.
Help will be highly appreciated.
Regards,
AMD.

採用された回答

ChristianW
ChristianW 2013 年 3 月 14 日
Y = cell(size(mydate1)); % preallocate
for k = 1:length(mydate1)
str = [mydate1{k} '::' mydate2{k}]; % Date String Range
% str = sprintf('%s::%s',mydate1{k},mydate2{k}); % Alternative
Y{k} = fts2mat(EPS(str)); % output saved in cell Y
end
  2 件のコメント
ARS
ARS 2013 年 3 月 14 日
Thanks a lot.
Can you please explain this: str = sprintf('%s::%s',mydate1{k},mydate2{k});
I mean why can't it be
str = sprintf(mydate1{k},'%s::%s',mydate2{k});
Is there any order to follow? like.,,the operator :: needs to be in the start? but it is evaluated in the middle actually.
Regards
AMD.
ChristianW
ChristianW 2013 年 3 月 14 日
doc sprintf
An example:
sprintf('answer=%d',3) % ans = 'answer=3'
sprintf('%d is the answer',3) % ans = '3 is the answer'
The Symbol %d determines where the variable (3) is placed in the string. Same with %s, s announces that the variable is a string.
sprintf('answer=%s','HELLO')
sprintf('%s is the answer','HELLO')

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCalendar についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by