【问题标题】:matlab 'for' loop not executing last step or single stepmatlab'for'循环不执行最后一步或单步
【发布时间】:2014-02-10 15:57:41
【问题描述】:

我不明白为什么 for 循环不执行最后一个循环,即字段“PX_TO_BOOK_RATIO”。

javaaddpath('C:\DocumentsandSettings\cascari\Desktop\API\APIv3\JavaAPI\v3.7.1.1\lib\blpapi3.jar')
connection = blp;
FileName='ScopeEconomies';
list={'OPM LN Equity';'FCTY US Equity';'FCCY US Equity'}
bbgfields={'TOT_LOAN_TO_TOT_ASSET'; 'PX_TO_BOOK_RATIO' };
nfields=length(bbgfields);

for i=1:nfields

      [data,sec] = history(connection, list, bbgfields(i), '01/01/1993', '12/31/2013',...
                  {'quarterly','all_calendar_days','nil_value'},'USD');

      temp=[data{:,:}]; 
      eval([char(bbgfields(i)) '=temp']);

      name=char(bbgfields(i));

      xlswrite(FileName, temp, name, 'B1');

end;

当我在 bbgfields 中只留下一个元素时,我得到了

Attempted to access j(1); index out of bounds because numel(j)=0.
Error in blp/history>eventHandler (line 417)
    outInd(i) = j(1);
Error in blp/history (line 245)
  [d,sec] = eventHandler(b,s,f); 

【问题讨论】:

  • 我在你的 sn-p 中的任何地方都没有看到名为 j 的变量
  • 运行第一个代码后i 的值是多少?
  • 请包含完整的错误堆栈。
  • 我包含的是我收到的完整错误消息。
  • @Mark,j来自标准化的错误信息,它指代代码的一个通用元素

标签: matlab for-loop cycle


【解决方案1】:

我猜这是因为您使用单元格作为历史的输入。您是否尝试将其转换为 char 如下?

[data,sec] = history(connection, list, char(bbgfields(i)), '01/01/1993', '12/31/2013',...
              {'quarterly','all_calendar_days','nil_value'},'USD');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 2013-01-17
    相关资源
    最近更新 更多