erorr with the function

8 visualizzazioni (ultimi 30 giorni)
Maciek
Maciek il 1 Feb 2015
Commentato: Maciek il 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

Risposte (1)

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

Accedi per commentare.

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by