erorr with the function

8 Ansichten (letzte 30 Tage)
Maciek
Maciek am 1 Feb. 2015
Kommentiert: Maciek am 1 Feb. 2015
Hi I'm trying understand why the following notification of an error appears on the command window ">> fillMissingData Index exceeds matrix dimensions.
Error in fillMissingData (line 17) tday=varargin(1);" but I can not . Can Somebody show what is wrong with this function
function my_prices=fillMissingData(prices, varargin)
% my_prices=fillMissingData(prices) fills missing price with previous
% day's price
% my_prices=fillMissingData(prices, tday, cday) fills missing prices with previous day's price including non-trading days
% as specified in cday
if (nargin == 1)
my_prices=prices;
for t=2:size(my_prices, 1)
missData=~isfinite(my_prices(t, :, :));
my_prices(t, missData)=my_prices(t-1, missData);
end
else
% We deal only with 2 dim prices array here.
tday=varargin(1);
cday=varargin(2);
my_prices=NaN*zeros(size(cday, 1), size(prices, 2));
tdayIdx=find(tday==cday(1));
if (~isempty(tdayIdx))
my_prices(1, :)=prices(tdayIdx, :);
end
for t=2:size(my_prices, 1)
tdayIdx=find(tday==cday(t));
if (~isempty(tdayIdx))
my_prices(t, :)=prices(tdayIdx, :);
missData=find(~isfinite(my_prices(t, :)));
my_prices(t, missData)=my_prices(t-1, missData);
else
my_prices(t, :)=my_prices(t-1, :);
end
end
end

Antworten (1)

Matt J
Matt J am 1 Feb. 2015
I imagine you meant to do
tday=varargin{1};
cday=varargin{2};
  1 Kommentar
Maciek
Maciek am 1 Feb. 2015
i can not set the breakpoints to understand acting of the function but i can not because of the bug

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by