What is wrong on these code ?

Illustration
rendas - 2021-08-04T09:47:28+00:00
Question: What is wrong on these code ?

I applied these code for forecasting 10 days head   I used NARNET approach but i got error a   also i am using matalb R2013a   These error   Index exceeds matrix dimensions.     t=load('D:\myexp\RKMS with logfun\2009data.csv'); time = 1:length(t) n=length(t); %------------------------------------------------------------- %----------------------------------------------------------------- t = tonndata(t,false,false); %------------------------------------------------------------ % ---------------------------------DESIGN NETWORK ID=1:2; HL=20; net = narnet(ID,HL); %--------------------------------Training the network [Xs,Xi,Ai,Ts] = preparets(net,{},{},t); net = train(net,Xs,Ts,Xi,Ai); %------------------------------------ SIMULATE NETWORK FOR ORIGINAL SERIES [Y,Xf,Af] = sim(net,Xs,Xi,Ai); %----------------------------- netc = closeloop(net); view(netc) % 10 More Steps for the first (now only) input X2 = num2cell(rand(1,10)); % Initial input states for closed loop continuation will be the % first input's final states. Xi2 = Xf(1,:); % Initial 2nd layer states for closed loop contination will be the % processed second input's final states. Initial 1st layer states % will be zeros, as they have no delays associated with them. Ai2 = cell2mat(Xf(2,:)); for i=1:length(net.inputs{1}.processFcns) fcn = net.inputs{i}.processFcns{i}; settings = net.inputs{i}.processSettings{i}; Ai2 = feval(fcn,'apply',Ai2,settings); end Ai2 = mat2cell([zeros(10,2); Ai2],[10 1],ones(1,2)); % Closed loop simulation on X2 continues from open loop state after X. Y2 = sim(netc,X2,Xi2,Ai2);  

Expert Answer

Profile picture of Neeta Dsouza Neeta Dsouza answered . 2025-11-20

I suspect the problem is in the for loop, most probably here...

 

fcn = net.inputs{i}.processFcns{i};
settings = net.inputs{i}.processSettings{i};

"i" is indexing the elements of net.inputs.processFcns, not net.inputs Should these lines perhaps be the following?

fcn = net.inputs{1}.processFcns{i};
settings = net.inputs{1}.processSettings{i};

As a side, it is good practice not to use "i" or "j" for indexing in MATLAB. These are reserved for complex numbers. I tend to use "ii" or "jj".


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!