2014-02-10 61 views
-1

我不明白爲什麼對循環不執行的最後一個週期,即場「PX_TO_BOOK_RATIO」。MATLAB「for」循環不執行最後一步或單步

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); 
+1

我在代碼段中的任何地方都看不到一個叫做j的變量 –

+0

運行第一個代碼後'i'的值是多少? –

+0

請包括完整的錯誤堆棧。 – Daniel

回答

0

我猜那是因爲你使用的是電池作爲輸入成爲歷史。您是否嘗試過將其轉換爲char如下?

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