Error using network/subsasgn>network_subsasgn (line 91) Index exceeds matrix dimensions. Error in network/subsasgn (line 13) net = network_subsasgn(net,subscripts,v,netname); Error in narx_closed (line 28) net.inputs{2}.processFcns = {'removeconstantrows','mapminmax'};
%%Closed Loop NARX Neural Network %%Load data and create input and output matrices load('junior_class_data.mat'); U = [Outdoor_Temp, Position, Wind_Speed, Wind_Direction]; Y = [Zone_Temp]; inputSeries = tonndata(U,false,false); targetSeries = tonndata(Y,false,false); %%Create a Nonlinear Autoregressive Network with External Input inputDelays = 0:2; feedbackDelays = 1:2; hiddenLayerSize = 10; net = narxnet(inputDelays,feedbackDelays,hiddenLayerSize,'closed'); %%Pre-Processing % Choose Input and Feedback Pre/Post-Processing Functions % Settings for feedback input are automatically applied to feedback output % For a list of all processing functions type: help nnprocess % Customize input parameters at: net.inputs{i}.processParam % Customize output parameters at: net.outputs{i}.processParam net.inputs{1}.processFcns = {'removeconstantrows','mapminmax'}; net.inputs{2}.processFcns = {'removeconstantrows','mapminmax'}; % Prepare the Data for Training and Simulation % The function PREPARETS prepares timeseries data for a particular network, % shifting time by the minimum amount to fill input states and layer states. % Using PREPARETS allows you to keep your original time series data unchanged, while % easily customizing it for networks with differing numbers of delays, with % open loop or closed loop feedback modes. [inputs,inputStates,layerStates,targets] = preparets(net,inputSeries,{},targetSeries); % Setup Division of Data for Training, Validation, Testing % For a list of all data division functions type: help nndivide net.divideFcn = 'divideblock'; % The property DIVIDEMODE set to TIMESTEP means that targets are divided % into training, validation and test sets according to timesteps. % For a list of data division modes type: help nntype_data_division_mode net.divideMode = 'value'; % Divide up every value net.divideParam.trainRatio = 80/100; net.divideParam.valRatio = 15/100; net.divideParam.testRatio = 5/100; %%Training Function % For a list of all training functions type: help nntrain % Customize training parameters at: net.trainParam net.trainFcn = 'trainlm'; % Levenberg-Marquardt % Choose a Performance Function % For a list of all performance functions type: help nnperformance % Customize performance parameters at: net.performParam net.performFcn = 'mse'; % Mean squared error % Choose Plot Functions % For a list of all plot functions type: help nnplot % Customize plot parameters at: net.plotParam net.plotFcns = {'plotperform','plottrainstate','plotresponse', ... 'ploterrcorr', 'plotinerrcorr'}; %%Train the Network [net,tr] = train(net,inputs,targets,inputStates,layerStates); %%Test the Network outputs = net(inputs,inputStates,layerStates); errors = gsubtract(targets,outputs); performance = perform(net,targets,outputs) % Recalculate Training, Validation and Test Performance trainTargets = gmultiply(targets,tr.trainMask); valTargets = gmultiply(targets,tr.valMask); testTargets = gmultiply(targets,tr.testMask); trainPerformance = perform(net,trainTargets,outputs) valPerformance = perform(net,valTargets,outputs) testPerformance = perform(net,testTargets,outputs) %%View the Network view(net)
close all, clear all, clc disp('DIRECT TRAINING OF A CLOSELOOP NARXNET') load('maglev_dataset'); whos % Name Size Bytes Class % maglevInputs 1x4001 272068 cell % maglevTargets 1x4001 272068 cell X = maglevInputs; T = maglevTargets; ID = 1:2, FD = 1:2, H = 10 % Default values netc = closeloop(narxnet(ID,FD,H)); view(netc) netc.divideFcn = 'divideblock'; [ Xcs, Xci, Aci, Tcs ] = preparets( netc, X, {}, T ); tcs = cell2mat(Tcs); whos X T Xcs Xci Aci Tcs tcs % Name Size Bytes Class % Aci 2x2 416 cell % T 1x4001 272068 cell % Tcs 1x3999 271932 cell % X 1x4001 272068 cell % Xci 1x2 136 cell % Xcs 1x3999 271932 cell % tcs 1x3999 31992 double MSE00cs = var(tcs,1) % 2.0021 ( 1-dim MSE reference) rng(4151941) tic [netc trc Ycs Ecs Xcf Acf ] = train(netc,Xcs,Tcs,Xci,Aci); toc % 197 sec view(netc) whos Ycs Ecs Xcf Acf % Name Size Bytes Class % Acf 2x2 416 cell % Ecs 1x3999 271932 cell % Xcf 1x2 136 cell % Ycs 1x3999 271932 cell stopcriterion = trc.stop % Validation stop bestepoch = trc.best_epoch % 4 ecs = cell2mat(Ecs); NMSEcs = mse(ecs)/MSE00cs % 1.2843 tcstrn = tcs(trc.trainInd); tcsval = tcs(trc.valInd); tcstst = tcs(trc.testInd); NMSEcstrn = trc.best_perf/var(tcstrn,1) % 1.3495 NMSEcsval = trc.best_vperf/var(tcsval,1) % 0.9325 NMSEcstst = trc.best_tperf/var(tcstst,1) % 1.6109
Matlabsolutions.com provides guaranteed satisfaction with a
commitment to complete the work within time. Combined with our meticulous work ethics and extensive domain
experience, We are the ideal partner for all your homework/assignment needs. We pledge to provide 24*7 support
to dissolve all your academic doubts. We are composed of 300+ esteemed Matlab and other experts who have been
empanelled after extensive research and quality check.
Matlabsolutions.com provides undivided attention to each Matlab
assignment order with a methodical approach to solution. Our network span is not restricted to US, UK and Australia rather extends to countries like Singapore, Canada and UAE. Our Matlab assignment help services
include Image Processing Assignments, Electrical Engineering Assignments, Matlab homework help, Matlab Research Paper help, Matlab Simulink help. Get your work
done at the best price in industry.