% File Name : excute.m
% Purpose : excution of the commands associated with buttons and menus
% of the main program window
% Author : Hossam E. Mostafa Abdelbaki, School of Computer Science,
% University of Centeral Florida (UCF).
% Release : ver. 1.0.
% Date : October 1998.
%
% RNNSIM is a software program available to the user without any
% license or royalty fees. Permission is hereby granted to use, copy,
% modify, and distribute this software for any purpose. The Author
% and UCF give no warranty, express, implied, or statuary for the
% software including, without limitation, waranty of merchantibility
% and warranty of fitness for a particular purpose. The software
% provided hereunder is on an "as is" basis, and the Author and the
% UCF has no obligation to provide maintenance, support, updates,
% enhancements, or modifications.
%
% RNNSIM is available for any platform (UNIX, PCWIN, MACHITOCH).
% It runs under MATLAB ver. 5.0 or highrer.
%
% User feedback, bugs, or software and manual suggestions can
% be sent via electronic mail to : ahossam@cs.ucf.edu
function excute(action)
global RnnFigHndl Checkbox1Hndl
global RnnFigallEdtsHndl RnnFigallBtnsHndl RnnFigallMnusHndl RnnFigallMainMnusHndl
global DrawNetPBHndl EditNetFilePBHndl EditTrainFilePBHndl
global TrainPBHndl StopPBHndl PlotErrorPBHndl ResumePBHndl
global EditTestFilePBHndl ShowLogPBHndl TestPBHndl AcceptPBHndl ResetPBHndl
global HelpPBHndl DemoPBHndl AboutPBHndl RNNTutorialPBHndl RnnFigQuitPBHndl
global DrawNetMnuHndl EditNetFileMnuHndl EditTrainFileMnuHndl
global TrainMnuHndl StopMnuHndl PlotErrorMnuHndl ResumeMnuHndl
global EditTestFileMnuHndl ShowLogMnuHndl TestMnuHndl AcceptMnuHndl ResetMnuHndl
global HelpMnuHndl DemoMnuHndl AboutMnuHndl RNNTutorialMnuHndl RnnFigQuitMnuHndl
global NetFileNameEdTHndl TrainFileNameEdTHndl WeightsFileNameEdTHndl
global TestFileNameEdTHndl LogFileNameEdTHndl
global StartIterationStTHndl StopIterationEdTHndl;
global StartMSEStTHndl StopMSEEdTHndl
global CurrentIterationStTHndl CurrentMSEStTHndl
global IterationTimeStTHndl ElapsedTimeStTHndl
global AutoSaveWeightsEdTHndl SaveIterEdTHndl
global InputNodesEdTHndl HiddenNodesEdTHndl OutputNodesEdTHndl
global LearningRateEdTHndl
global OutputRateEdTHndl StopMSE1StTHndl
global InitialWeightsRangeEdTHndl LoadedIterEdTHndl
global LoadedMSEEdTHndl InitialWeightsRangeSliHndl
global FilePopHndl StopIteration1StTHndl
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
global NET_FLAG TRN_FLAG WTS_FLAG TST_FLAG;
global N_Input N_Hidden N_Output N_Total Mse_Threshold MSEaveg Eta;
global N_Iterations R_Out RAND_RANGE FIX_RIN R_IN Save_Weights;
global Net_File_Name Train_File_Name Weights_File_Name Test_File_Name;
global Log_File_Name
global Temp_Weights_File_Name Temp_Net_File_Name;
Temp_Weights_File_Name = 'temp_wts.mat';
Temp_Net_File_Name = 'temp_net.m';
global N_Patterns TRAIN_INPUT TARGET TEST_INPUT N_Train_Patterns;
global wplus wminus err iter last_iter;
global STOP_FLAG WTS_FLAG_OLD WTS_FLAG_NEW;
global Hidden_Nodes_FLAG Learning_Rate_FLAG Output_Rate_FLAG
global Stop_Iteration_FLAG Stop_MSE_FLAG;
global Save_Iter_FLAG Initial_Weight_Rage_FLAG Save_Weights_On;
global File_Pop_FLAG
global N_Saved_Iterations;
global Temp_Save_Weights;
global OVER_TRAINED start
global OutputFigHndl OutputFigStTHndl
switch action
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'draw_net'
qqq = ['Draw Net : '
' Drawing the Neural Network Structure '];
display_message(qqq);
DrawNetworkFigHndl = findobj('Tag','DrawNetworkFig');
if(isempty(DrawNetworkFigHndl) == 1)
draw_nn;
drawrnn3(N_Input,N_Hidden,N_Output);
else
close(DrawNetworkFigHndl)
draw_nn;
drawrnn3(N_Input,N_Hidden,N_Output);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'edit_net'
qqq1 = 'Edit :';
qqq2 = ' Edit the File Containig the Network Data';
FileName1 = get(NetFileNameEdTHndl,'String');
qqq3 = sprintf('----> File (%s) is opened successfully',FileName1);
qqq4 = sprintf('----> Invalid Network File (%s)',FileName1);
qqq5 = sprintf('----> Error opening File (%s)',FileName1);
qqq6 = '----> Check the network file name';
ff = check_net_file(FileName1);
if(ff == 1)
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
comm = sprintf('edit %s',FileName1);
eval(comm);
end
if(ff == 0)
qqq = str2mat(qqq1,qqq2,qqq4);
display_message(qqq);
edit;
end
if(ff == -1)
qqq = str2mat(qqq1,qqq2,qqq5,qqq6);
display_message(qqq);
edit;
end
if(ff == -2)
qqq = str2mat(qqq1,qqq2,qqq5,qqq6);
display_message(qqq);
edit;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'edit_train'
qqq1 = 'Edit :';
qqq2 = ' Edit the File Containig the Train Data';
FileName2 = get(TrainFileNameEdTHndl,'String');
qqq3 = sprintf('----> File (%s) is opened successfully',FileName2);
qqq4 = sprintf('----> Invalid Train File (%s)',FileName2);
qqq5 = sprintf('----> Error opening File (%s)',FileName2);
qqq6 = '----> Check the Train file name (.m)';
ff = check_trn_file(FileName2);
if(ff == 1)
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
comm=sprintf('edit %s',FileName2);
eval(comm);
end
if(ff == 0)
qqq = str2mat(qqq1,qqq2,qqq4);
display_message(qqq);
edit;
end
if(ff == -1)
qqq = str2mat(qqq1,qqq2,qqq5,qqq6);
display_message(qqq);
edit;
end
if(ff == -2)
qqq = str2mat(qqq1,qqq2,qqq5,qqq6);
display_message(qqq);
edit;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'train'
STOP_FLAG = 0;
OVER_TRAINED =0;
set(StopPBHndl,'Enable', 'on');
set(PlotErrorPBHndl,'Enable', 'off');
set(TrainPBHndl,'Enable', 'off');
set(TestPBHndl,'Enable', 'off');
set(RnnFigQuitPBHndl,'Enable', 'off');
set(DemoPBHndl,'Enable', 'off');
set(AboutPBHndl,'Enable', 'off');
set(HelpPBHndl,'Enable', 'off');
set(RNNTutorialPBHndl,'Enable', 'off');
set(RNNTutorialPBHndl,'Enable', 'off');
set(DrawNetPBHndl,'Enable', 'off');
set(ResetPBHndl,'Enable', 'off');
set(StopMnuHndl,'Enable', 'on');
set(PlotErrorMnuHndl,'Enable', 'off');
set(TrainMnuHndl,'Enable', 'off');
set(TestMnuHndl,'Enable', 'off');
set(RnnFigQuitMnuHndl,'Enable', 'off');
set(DemoMnuHndl,'Enable', 'off');
set(AboutMnuHndl,'Enable', 'off');
set(HelpMnuHndl,'Enable', 'off');
set(RNNTutorialMnuHndl,'Enable', 'off');
set(RNNTutorialMnuHndl,'Enable', 'off');
set(DrawNetMnuHndl,'Enable', 'off');
set(ResetMnuHndl,'Enable', 'off');
qqq1 = 'Train :';
qqq2 = ' Start Training the RNN';
qqq3 = '-----------------------------';
qqq4 = ' Wait for network initialization';
qqq = str2mat(qqq1,qqq2,qqq3,qqq4);
display_message(qqq);
%prob1_trn;
FileName1 = extract_name(Train_File_Name);
eval(FileName1);
prep_trn;
prep_wts;
qqq1 = 'Train :';
qqq2 = ' Start Training the RNN';
qqq3 = '-----------------------------';
qqq4 = ' Initialization Complete ';
qqq5 = ' Training in progress ';
qqq = str2mat(qqq1,qqq2,qqq3,qqq4,qqq5);
display_message(qqq);
train_rnn3;
if(OVER_TRAINED == 1)
excute stop;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'stop'
STOP_FLAG = 1;
RESUME_FLAG = 0;
qqq1 = 'Stop :';
qqq2= ' Stop Training the RNN';
qqq = str2mat(qqq1,qqq2);
display_message(qqq);
set(StopPBHndl,'Enable', 'off');
set(TrainPBHndl,'Enable', 'off');
set(PlotErrorPBHndl,'Enable', 'on');
set(TestPBHndl,'Enable', 'on');
set(RnnFigQuitPBHndl,'Enable', 'on');
set(DemoPBHndl,'Enable', 'on');
set(AboutPBHndl,'Enable', 'on');
set(HelpPBHndl,'Enable', 'on');
set(RNNTutorialPBHndl,'Enable', 'on');
set(DrawNetPBHndl,'Enable', 'on');
set(ResetPBHndl,'Enable', 'on');
set(ResumePBHndl,'Enable', 'on');
set(StopMnuHndl,'Enable', 'off');
set(TrainMnuHndl,'Enable', 'off');
set(PlotErrorMnuHndl,'Enable', 'on');
set(TestMnuHndl,'Enable', 'on');
set(RnnFigQuitMnuHndl,'Enable', 'on');
set(DemoMnuHndl,'Enable', 'on');
set(AboutMnuHndl,'Enable', 'on');
set(HelpMnuHndl,'Enable', 'on');
set(RNNTutorialMnuHndl,'Enable', 'on');
set(DrawNetMnuHndl,'Enable', 'on');
set(ResetMnuHndl,'Enable', 'on');
set(ResumeMnuHndl,'Enable', 'on');
if(OVER_TRAINED == 1 )
if (MSEaveg <= Mse_Threshold)
message1 = sprintf('Current Iteration = %d',last_iter);
message2 = sprintf('Stop Iteration = %d',N_Iterations);
message3 = sprintf('Current MSE = %12.9f',MSEaveg);
message4 = sprintf('Stop MSE = %12.9f',Mse_Threshold);
message5 = sprintf('Can not Resume because Current MSE <= Stop MSE');
message6 = sprintf('Try to reduce the value of the Stop MSE');
message = str2mat(message1,message2,message3,message4,message5,message6);
display_message(message);
end
if (iter >= N_Iterations -1)
message1 = sprintf('Current Iteration = %d',last_iter);
message2 = sprintf('Stop Iteration = %d',N_Iterations);
message3 = sprintf('Current MSE = %12.9f',MSEaveg);
message4 = sprintf('Stop MSE = %12.9f',Mse_Threshold);
message5 = 'Can not Resume because Current Iteration';
message6 = '>= Stop Iteration';
message7 = 'Try to reduce the value of the Stop';
message8 = 'Iteration Parameter';
message = str2mat(message1,message2,message3,message4,message5,message6,...
message7, message8);
display_message(message);
end
set(ResumePBHndl,'Enable', 'off');
set(ResumeMnuHndl,'Enable', 'off');
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'plot_error'
qqq1 = 'Plot Error :';
qqq2 = ' Plot the Average Mean Squared Error';
qqq = str2mat(qqq1,qqq2);
display_message(qqq);
if(OVER_TRAINED == 1)
set(ResumePBHndl,'Enable', 'off');
set(ResumeMnuHndl,'Enable', 'off');
else
set(ResumePBHndl,'Enable', 'on');
set(ResumeMnuHndl,'Enable', 'on');
end
PlotErrorFigHndl = findobj('Tag','PlotErrorFig');
if(isempty(PlotErrorFigHndl) == 1)
plot_error;
FileName = get(WeightsFileNameEdTHndl,'String');
if(Save_Weights == 1);
comm = sprintf('load %s err last_iter',FileName);
eval(comm);
else
comm = sprintf('load %s err last_iter',Temp_Weights_File_Name );
eval(comm);
end
iter = last_iter;
plot(err(1:iter));
title('Average Mean Squared Error versus Iteration number');
xlabel('Iteration number');
ylabel('Average Mean Squared Error');
axis([1 iter 0 max(err(1:iter))]);
else
close(PlotErrorFigHndl);
excute('plot_error');
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'resume'
STOP_FLAG = 0;
OVER_TRAINED = 0;
WTS_FLAG_OLD = 1;
WTS_FLAG_NEW = 0;
qqq1 = 'Resume :';
qqq2 = ' Resume Training the RNN';
qqq = str2mat(qqq1,qqq2);
display_message(qqq);
set(StopPBHndl,'Enable', 'on');
set(ResumePBHndl,'Enable', 'off');
set(PlotErrorPBHndl,'Enable', 'off');
set(TrainPBHndl,'Enable', 'off');
set(TestPBHndl,'Enable', 'off');
set(ShowLogPBHndl,'Enable', 'off');
set(RnnFigQuitPBHndl,'Enable', 'off');
set(DemoPBHndl,'Enable', 'off');
set(AboutPBHndl,'Enable', 'off');
set(HelpPBHndl,'Enable', 'off');
set(RNNTutorialPBHndl,'Enable', 'off');
set(RNNTutorialPBHndl,'Enable', 'off');
set(DrawNetPBHndl,'Enable', 'off');
set(ResetPBHndl,'Enable', 'off');
set(EditTestFilePBHndl,'Enable','off');
set(StopMnuHndl,'Enable', 'on');
set(ResumeMnuHndl,'Enable', 'off');
set(PlotErrorMnuHndl,'Enable', 'off');
set(TrainMnuHndl,'Enable', 'off');
set(TestMnuHndl,'Enable', 'off');
set(ShowLogMnuHndl,'Enable', 'off');
set(RnnFigQuitMnuHndl,'Enable', 'off');
set(DemoMnuHndl,'Enable', 'off');
set(AboutMnuHndl,'Enable', 'off');
set(HelpMnuHndl,'Enable', 'off');
set(RNNTutorialMnuHndl,'Enable', 'off');
set(RNNTutorialMnuHndl,'Enable', 'off');
set(DrawNetMnuHndl,'Enable', 'off');
set(ResetMnuHndl,'Enable', 'off');
set(EditTestFileMnuHndl,'Enable','off');
%prob1_trn;
FileName1 = extract_name(Train_File_Name);
eval(FileName1);
prep_trn;
prep_wts;
train_rnn3;
if(OVER_TRAINED == 1)
if (MSEaveg <= Mse_Threshold)
message1 = sprintf('Current Iteration = %d',last_iter);
message2 = sprintf('Stop Iteration = %d',N_Iterations);
message3 = sprintf('Current MSE = %12.9f',MSEaveg);
message4 = sprintf('Stop MSE = %12.9f',Mse_Threshold);
message5 = sprintf('Can not Resume because Current MSE <= Stop MSE');
message6 = sprintf('Try to reduce the value of the Stop MSE');
message = str2mat(message1,message2,message3,message4,message5,message6);
display_message(message);
end
if (iter >= N_Iterations -1)
message1 = sprintf('Current Iteration = %d',last_iter);
message2 = sprintf('Stop Iteration = %d',N_Iterations);
message3 = sprintf('Current MSE = %12.9f',MSEaveg);
message4 = sprintf('Stop MSE = %12.9f',Mse_Threshold);
message5 = sprintf('Can not Resume because Current Iteration ');
message6 = (' >= Stop Iteration');
message7 = sprintf('Try to reduce the value of the Stop ');
message8 = ('Iteration Parameter');
message = str2mat(message1,message2,message3,message4,message5,message6,...
message7,message8);
display_message(message);
end
set(ResumePBHndl,'Enable', 'off');
set(ResumeMnuHndl,'Enable', 'off');
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'edit_test'
qqq1 = 'Edit :';
qqq2 = ' Edit the File Containig the Test Data';
FileName4 = get(TestFileNameEdTHndl,'String');
qqq3 = sprintf('----> File (%s) is opened successfully',FileName4);
qqq4 = sprintf('----> Invalid Test File (%s)',FileName4);
qqq5 = sprintf('----> Error opening File (%s)',FileName4);
qqq6 = '----> Check the Test file name';
ff=check_tst_file(FileName4);
if(ff == 1)
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
comm = sprintf('edit %s',FileName4);
eval(comm);
end
if(ff == 0)
qqq = str2mat(qqq1,qqq2,qqq4);
display_message(qqq);
comm = sprintf('edit %s',FileName4);
edit;
end
if(ff == -1)
qqq = str2mat(qqq1,qqq2,qqq5,qqq6);
display_message(qqq);
edit;
end
if(ff == -2)
qqq = str2mat(qqq1,qqq2,qqq5,qqq6);
display_message(qqq);
edit;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'show_log'
qqq1 = 'Show :';
qqq2 = ' Show the Test Results';
FileName4 = get(LogFileNameEdTHndl,'String');
qqq3 = sprintf('----> File (%s) is opened successfully',FileName4);
qqq4 = sprintf('----> Error opening File (%s)',FileName4);
qqq5 = '----> Check the Log file name';
ff = exist(FileName4);
if(ff ~= 0)
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
comm = sprintf('edit %s',FileName4);
eval(comm);
else
qqq = str2mat(qqq1,qqq2,qqq4,qqq5);
display_message(qqq);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'test'
set(ResumePBHndl,'Enable', 'off');
set(TrainPBHndl,'Enable', 'off');
set(PlotErrorPBHndl,'Enable', 'off');
set(TrainPBHndl,'Enable', 'off');
set(TestPBHndl,'Enable', 'off');
set(RnnFigQuitPBHndl,'Enable', 'off');
set(DemoPBHndl,'Enable', 'off');
set(AboutPBHndl,'Enable', 'off');
set(HelpPBHndl,'Enable', 'off');
set(RNNTutorialPBHndl,'Enable', 'off');
set(RNNTutorialPBHndl,'Enable', 'off');
set(DrawNetPBHndl,'Enable', 'off');
set(ResetPBHndl,'Enable', 'off');
set(ResumeMnuHndl,'Enable', 'off');
set(TrainMnuHndl,'Enable', 'off');
set(PlotErrorMnuHndl,'Enable', 'off');
set(TrainMnuHndl,'Enable', 'off');
set(TestMnuHndl,'Enable', 'off');
set(RnnFigQuitMnuHndl,'Enable', 'off');
set(DemoMnuHndl,'Enable', 'off');
set(AboutMnuHndl,'Enable', 'off');
set(HelpMnuHndl,'Enable', 'off');
set(RNNTutorialMnuHndl,'Enable', 'off');
set(RNNTutorialMnuHndl,'Enable', 'off');
set(DrawNetMnuHndl,'Enable', 'off');
set(ResetMnuHndl,'Enable', 'off');
qqq1 = 'Test :';
qqq2 = ' Start Testing the RNN';
qqq = str2mat(qqq1,qqq2);
display_message(qqq);
%prob1_tst;
FileName1 = extract_name(Test_File_Name);
eval(FileName1);
prep_tst;
prep_wts;
test_rnn3;
qqq1 = 'Test :';
qqq2 = ' Start Testing the RNN';
qqq3 = ' Testing Complete ...';
qqq4 = 'See the results by clicking Show button';
qqq = str2mat(qqq1,qqq2,qqq3,qqq4);
display_message(qqq);
set(StopPBHndl,'Enable', 'off');
set(TrainPBHndl,'Enable', 'off');
set(PlotErrorPBHndl,'Enable', 'on');
set(TestPBHndl,'Enable', 'on');
set(RnnFigQuitPBHndl,'Enable', 'on');
set(DemoPBHndl,'Enable', 'on');
set(AboutPBHndl,'Enable', 'on');
set(HelpPBHndl,'Enable', 'on');
set(RNNTutorialPBHndl,'Enable', 'on');
set(DrawNetPBHndl,'Enable', 'on');
set(ResetPBHndl,'Enable', 'on');
set(ShowLogPBHndl,'Enable', 'on');
set(StopMnuHndl,'Enable', 'off');
set(TrainMnuHndl,'Enable', 'off');
set(PlotErrorMnuHndl,'Enable', 'on');
set(TestMnuHndl,'Enable', 'on');
set(RnnFigQuitMnuHndl,'Enable', 'on');
set(DemoMnuHndl,'Enable', 'on');
set(AboutMnuHndl,'Enable', 'on');
set(HelpMnuHndl,'Enable', 'on');
set(RNNTutorialMnuHndl,'Enable', 'on');
set(DrawNetMnuHndl,'Enable', 'on');
set(ResetMnuHndl,'Enable', 'on');
set(ShowLogMnuHndl,'Enable', 'on');
if(OVER_TRAINED == 1)
set(ResumePBHndl,'Enable', 'off');
set(ResumeMnuHndl,'Enable', 'off');
else
set(ResumePBHndl,'Enable', 'on');
set(ResumeMnuHndl,'Enable', 'on');
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'accept'
qqq1 = 'Accept :';
qqq2 = ' Accept All Options';
qqq = str2mat(qqq1,qqq2);
display_message(qqq);
%%%%%%%%%%%%%%%%%%%%%%%%%%%
FileName = get(NetFileNameEdTHndl,'String');
Net_File_Name = FileName;
NET_FLAG = 0;
NET_FLAG = check_net_file(FileName);
if(NET_FLAG == 1)
qqq1 = 'Network File : O.K';
else
qqq1 = 'Network File : ERR';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FileName = get(TrainFileNameEdTHndl,'String');
Train_File_Name = FileName;
TRN_FLAG = 0;
TRN_FLAG = check_trn_file(FileName);
if(TRN_FLAG == 1)
qqq2 = 'Train File : O.K';
else
qqq2 = 'Train File : ERR';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FileName = get(TestFileNameEdTHndl,'String');
Test_File_Name = FileName ;
TST_FLAG = 0;
TST_FLAG = check_tst_file(FileName);
if(TST_FLAG == 1)
qqq3 = 'Test File : O.K';
else
qqq3 = 'Test File : ERR';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if(WTS_FLAG == 1)
if(WTS_FLAG_OLD == 0 & WTS_FLAG_NEW == 1)
if(Save_Weights == 1)
qqq4 = 'Weights File : O.K';
else
qqq4 = 'Weights File : O.K';
end
elseif(WTS_FLAG_OLD == 1 & WTS_FLAG_NEW == 0)
qqq4 = 'Weights File : O.K';
end
else
qqq4 = 'Weights File : ERR';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
N_Total = N_Input + N_Hidden + N_Output; %Total Number of Neurons
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Hidden_Nodes_FLAG = 0;
excute Hidden_Nodes;
if(Hidden_Nodes_FLAG == 1)
qqq5 = 'Hidden Nodes : O.K';
else
qqq5 = 'Hidden Nodes : ERR';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Learning_Rate_FLAG = 0;
excute Learning_Rate;
if(Learning_Rate_FLAG == 1)
qqq6 = 'Learning Rate : O.K';
else
qqq6 = 'Learning Rate : ERR';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Stop_Iteration_FLAG = 0;
excute Stop_Iteration;
if(Stop_Iteration_FLAG == 1)
qqq7 = 'Stop Iteration : O.K';
else
qqq7 = 'Stop Iteration : ERR';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Stop_MSE_FLAG = 0;
excute Stop_MSE;
if(Stop_MSE_FLAG == 1)
qqq8 = 'Stop MSE : O.K';
else
qqq8 = 'Stop MSE : ERR';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
excute Initial_Weights_Range_Sli;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Initial_Weight_Rage_FLAG = 0;
excute Initial_Weights_Range_EdT;
if(Initial_Weight_Rage_FLAG == 1)
qqq9 = 'Initial Weight Rage : O.K';
else
qqq9 = 'Initial Weight Rage : ERR';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Save_Iter_FLAG = 0;
excute Save_Iter;
if(Save_Weights == 1)
if(Save_Iter_FLAG == 1)
qqq10 = 'Save Iter : O.K' ;
else
qqq10 = 'Save Iter : ERR';
end
else
qqq10 = 'Save Iter : O.K';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Output_Rate_FLAG = 0;
excute Output_Rate;
if(Output_Rate_FLAG == 1)
qqq11 = 'Output_Rate : O.K';
else
qqq11 = 'Output_Rate : ERR';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
varnames = ['N_Input' ' ' 'N_Hidden' ' ' 'N_Output' ' ' 'Mse_Threshold' ' ' 'Eta' ' '];
varnames = [varnames 'N_Iterations' ' ' 'R_Out' ' ' 'RAND_RANGE' ' ' 'FIX_RIN' ' ' 'R_IN' ' '];
varnames = [varnames 'N_Saved_Iterations' ' ' 'Net_File_Name' ' '];
varnames = [varnames 'Train_File_Name' ' ' 'Weights_File_Name' ' ' 'Test_File_Name' ' '];
varnames = [varnames 'Log_File_Name' ' ' 'N_Total' ' ' 'last_iter' ' ' 'MSEaveg'];
mess1 = [qqq1 ' ' qqq2];
mess2 = [qqq3 ' ' qqq4];
mess3 = [qqq5 ' ' qqq6];
mess4 = [qqq7 ' ' qqq8];
mess5 = [qqq9 ' ' qqq10];
mess6 = [qqq11];
if(NET_FLAG ==1 & TRN_FLAG == 1 & TST_FLAG == 1 & WTS_FLAG == 1 & ...
Hidden_Nodes_FLAG ==1 & Learning_Rate_FLAG == 1 & ...
Stop_Iteration_FLAG == 1 & Stop_MSE_FLAG == 1 & ...
Output_Rate_FLAG == 1 & Initial_Weight_Rage_FLAG == 1)
mess0 = ' ****** O.K ************ ';
qqq = str2mat(mess0,mess1,mess2,mess3,mess4,mess5,mess6);
display_message(qqq);
else
mess0 = ' ****** ERROR ************';
qqq = str2mat(mess0,mess1,mess2,mess3,mess4,mess5,mess6);
display_message(qqq);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if(NET_FLAG == 1 & TRN_FLAG == 1 & TST_FLAG == 1 & WTS_FLAG == 1 & ...
Hidden_Nodes_FLAG ==1 & Learning_Rate_FLAG == 1 & ...
Stop_Iteration_FLAG == 1 & Stop_MSE_FLAG == 1 & ...
Output_Rate_FLAG == 1 & Initial_Weight_Rage_FLAG ==1)
WtsFileName = get(WeightsFileNameEdTHndl,'String');
Weights_File_Name = WtsFileName;
if(WTS_FLAG_OLD == 0 & WTS_FLAG_NEW == 1)
if(Save_Weights == 1 & strcmp(Weights_File_Name,Temp_Weights_File_Name) ~= 1)
qqq4 = 'Weights File : O.K';
mess = sprintf('save %s %s',Weights_File_Name, varnames);
eval(mess);
else
TEMP = Net_File_Name;
Net_File_Name = Temp_Net_File_Name;
qqq4 = 'Weights File : O.K';
mess = sprintf('save %s %s',Temp_Weights_File_Name, varnames);
eval(mess);
Net_File_Name = TEMP;
end
end
if(WTS_FLAG_OLD == 1 & WTS_FLAG_NEW == 0)
if(Save_Weights == 1)
mess = sprintf('save %s %s -append',Weights_File_Name, varnames);
eval(mess)
else
mess = sprintf('save %s %s',Temp_Weights_File_Name, varnames);
end
end
set(RnnFigallBtnsHndl, 'Enable', 'off');
set(EditNetFilePBHndl,'Enable', 'off');
set(Checkbox1Hndl,'Enable','off');
set(InitialWeightsRangeSliHndl,'Enable','off');
set(RnnFigQuitPBHndl,'Enable', 'on');
set(DemoPBHndl,'Enable', 'on');
set(AboutPBHndl,'Enable', 'on');
set(HelpPBHndl,'Enable', 'on');
set(RNNTutorialPBHndl,'Enable', 'on');
set(ResetPBHndl,'Enable', 'on');
set(DrawNetPBHndl,'Enable','on');
set(RnnFigallMnusHndl, 'Enable', 'off');
set(EditNetFileMnuHndl,'Enable', 'off');
set(RnnFigallMainMnusHndl, 'Enable', 'on');
set(RnnFigQuitMnuHndl,'Enable', 'on');
set(DemoMnuHndl,'Enable', 'on');
set(AboutMnuHndl,'Enable', 'on');
set(HelpMnuHndl,'Enable', 'on');
set(RNNTutorialMnuHndl,'Enable', 'on');
set(ResetMnuHndl,'Enable', 'on');
set(DrawNetMnuHndl,'Enable','on');
if(WTS_FLAG_OLD == 0 & WTS_FLAG_NEW == 1)
set(TestPBHndl,'Enable','off');
set(TrainPBHndl,'Enable','on');
set(TestMnuHndl,'Enable','off');
set(TrainMnuHndl,'Enable','on');
end
if(WTS_FLAG_OLD == 1 & WTS_FLAG_NEW == 0)
set(TrainPBHndl,'Enable','off');
set(TestPBHndl,'Enable','on');
set(ResumePBHndl,'Enable','on');
set(PlotErrorPBHndl,'Enable','on');
set(TrainMnuHndl,'Enable','off');
set(TestMnuHndl,'Enable','on');
set(ResumeMnuHndl,'Enable','on');
set(PlotErrorMnuHndl,'Enable','on');
end
set(RnnFigallEdtsHndl,'Enable','off');
if(Save_Weights == 1)
if(MSEaveg <= Mse_Threshold)
Resume_Training = 0;
OVER_TRAINED = 1;
figure(RnnFigHndl);
excute stop;
end
if(last_iter >= N_Iterations-1)
Resume_Training = 0;
OVER_TRAINED = 1;
figure(RnnFigHndl);
excute stop;
end
end
set(FilePopHndl,'Enable','off');
if(WTS_FLAG_OLD == 0 & WTS_FLAG_NEW == 1)
set(LoadedIterEdTHndl,'String','0');
set(LoadedMSEEdTHndl,'String','None');
end
if(Save_Weights == 0)
ff = fopen(Temp_Net_File_Name,'Wt');
qq1 = sprintf('NET_FLAG = 1;');
fprintf(ff , '%s\n' , qq1);
qq2 = sprintf('%%%%%%%% Network Parameter Initialization %%%%%%%%');
fprintf(ff , '%s\n' , qq2);
qq3 = sprintf('N_Input = %d;', N_Input);
fprintf(ff , '%s\n' , qq3);
qq4 = sprintf('N_Hidden = %d;', N_Hidden);
fprintf(ff , '%s\n' , qq4);
qq5 = sprintf('N_Output = %d;', N_Output);
fprintf(ff , '%s\n' , qq5);
qq6 = sprintf('Mse_Threshold = %e;', Mse_Threshold);
fprintf(ff , '%s\n' , qq6);
qq7 = sprintf('Eta = %f;', Eta);
fprintf(ff , '%s\n' , qq7);
qq8 = sprintf('N_Iterations = %d;', N_Iterations);
fprintf(ff , '%s\n' , qq8);
qq9 = sprintf('R_Out = %f;', R_Out);
fprintf(ff , '%s\n' , qq9);
qq10 = sprintf('RAND_RANGE = %f;', RAND_RANGE);
fprintf(ff , '%s\n' , qq10);
qq11 = sprintf('FIX_RIN = %d;', FIX_RIN);
fprintf(ff , '%s\n' , qq11);
qq12 = sprintf('R_IN = %f;', R_IN);
fprintf(ff , '%s\n' , qq12);
qq14 = sprintf('N_Saved_Iterations = %d;', N_Saved_Iterations);
fprintf(ff , '%s\n' , qq14);
qq15 = sprintf('Net_File_Name = ''%s'';', Temp_Net_File_Name);
fprintf(ff , '%s\n' , qq15);
qq16 = sprintf('Train_File_Name = ''%s'';', Train_File_Name);
fprintf(ff , '%s\n' , qq16);
qq17 = sprintf('Weights_File_Name = ''%s'';', Temp_Weights_File_Name);
fprintf(ff , '%s\n' , qq17);
qq18 = sprintf('Test_File_Name = ''%s'';', Test_File_Name);
fprintf(ff , '%s\n' , qq18);
qq19 = sprintf('Log_File_Name = ''%s'';', Log_File_Name);
fprintf(ff , '%s\n' , qq19);
qq20 = sprintf('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ');
fprintf(ff , '%s\n' , qq20);
qq21 = sprintf('N_Total = N_Input + N_Hidden + N_Output; %Total Number of Neurons');
fprintf(ff , '%s\n' , qq21);
fclose(ff);
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'reset_par'
qqq1 = 'Reset Parameters :';
qqq2 = ' Reset all Options';
qqq = str2mat(qqq1,qqq2);
display_message(qqq);
set(RnnFigallEdtsHndl,'Enable','off');
set(RnnFigallEdtsHndl,'String','');
set(RnnFigallBtnsHndl, 'Enable', 'off');
set(Checkbox1Hndl,'Enable','off');
set(Checkbox1Hndl,'Value',0);
set(RnnFigQuitPBHndl,'Enable', 'on');
set(DemoPBHndl,'Enable', 'on');
set(AboutPBHndl,'Enable', 'on');
set(HelpPBHndl,'Enable', 'on');
set(RNNTutorialPBHndl,'Enable', 'on');
set(ResetPBHndl,'Enable', 'on');
set(EditNetFilePBHndl,'Enable', 'on');
set(NetFileNameEdTHndl,'Enable','on');
set(FilePopHndl,'Enable','on');
set(RnnFigallMnusHndl, 'Enable', 'off');
set(RnnFigallMainMnusHndl, 'Enable', 'on');
set(RnnFigQuitMnuHndl,'Enable', 'on');
set(DemoMnuHndl,'Enable', 'on');
set(AboutMnuHndl,'Enable', 'on');
set(HelpMnuHndl,'Enable', 'on');
set(RNNTutorialMnuHndl,'Enable', 'on');
set(ResetMnuHndl,'Enable', 'on');
set(EditNetFileMnuHndl,'Enable', 'on');
set(StartMSEStTHndl,'String','');
set(CurrentMSEStTHndl,'String','');
set(StopMSE1StTHndl,'String','');
set(StartIterationStTHndl,'String','');
set(StopIteration1StTHndl,'String','');
set(CurrentIterationStTHndl,'String','');
set(IterationTimeStTHndl,'String','');
set(ElapsedTimeStTHndl,'String','');
set(AutoSaveWeightsEdTHndl,'BackgroundColor',[1 1 1]);
RnnFigHndl = findobj('Tag','RnnFig');
RnnFigStTHndl = findobj(RnnFigHndl,'Tag','StaticText1');
set(RnnFigStTHndl,'HorizontalAlignment','center');
set(RnnFigStTHndl,'FontSize',18);
set(RnnFigStTHndl,'FontWeight','bold');
set(InitialWeightsRangeSliHndl,'Enable','off','value',0);
mess = 'Random Neural Network Simulator ver. 1.0';
mess1 = [];
for iii = 1:length(mess)
mess1 = [mess1 mess(iii)];
set(RnnFigStTHndl,'String',mess1);
for kkk=1:10000 end
end
varnames = ['N_Input' ' ' 'N_Hidden' ' ' 'N_Output' ' ' 'Mse_Threshold' ' ' 'Eta' ' '];
varnames = [varnames 'N_Iterations' ' ' 'R_Out' ' ' 'RAND_RANGE' ' ' 'FIX_RIN' ' ' 'R_IN' ' '];
varnames = [varnames 'N_Saved_Iterations' ' ' 'Net_File_Name' ' '];
varnames = [varnames 'Train_File_Name' ' ' 'Weights_File_Name' ' ' 'Test_File_Name' ' '];
varnames = [varnames 'Log_File_Name' ' ' 'N_Total' ' ' 'last_iter' ' ' 'MSEaveg'];
mess = sprintf('clear global %s', varnames);
eval(mess);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'help_nn'
qqq1 = 'Help :';
qqq2 = ' How to use this Program';
qqq = str2mat(qqq1,qqq2);
display_message(qqq);
HelpFigHndl = findobj('Tag','HelpFig');
if(isempty(HelpFigHndl ) == 1)
help_nn;
else figure(HelpFigHndl);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'demo_nn'
qqq1 = 'Demo :';
qqq2 = ' Demo for Training and Testind the RNN';
qqq = str2mat(qqq1,qqq2);
display_message(qqq);
DemoFigHndl = findobj('Tag','DemoFig');
if(isempty(DemoFigHndl) == 1)
demo_nn;
else figure(DemoFigHndl);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'about_nn'
qqq1 = 'About :';
qqq2 = ' ';
qqq = str2mat(qqq1,qqq2);
display_message(qqq);
RnnAboutFigHndl = findobj('Tag','RnnAboutFig');
if(isempty(RnnAboutFigHndl) == 1)
about_nn;
else figure(RnnAboutFigHndl);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'tutor_nn'
qqq1 = 'RNN Tutorial :';
qqq2 = ' Learn More About Random Neural Network';
qqq = str2mat(qqq1,qqq2);
display_message(qqq);
RnnTutorFigHndl = findobj('Tag','RnnTutorFig');
if(isempty(RnnTutorFigHndl) == 1)
tutor_nn;
else figure(RnnTutorFigHndl);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'quit_nn'
qqq1 = 'Quit :';
qqq2 = ' Quit RNN Simulator ';
qqq = str2mat(qqq1,qqq2);
display_message(qqq);
RnnQuitFigHndl = findobj('Tag','RnnQuitFig');
if(isempty(RnnQuitFigHndl) == 1)
quit_nn;
else figure(RnnQuitFigHndl);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'File_Pop'
val = get(FilePopHndl,'Value');
if(val >= 1)
Net_File_Name = '';
FILES = get(FilePopHndl,'String');
TTT = FILES(val,:);
for i = 1:length(TTT)
if(TTT(i) ~= ' ')
Net_File_Name(i) = TTT(i);
end
end
File_Pop_FLAG = 1;
else
File_Pop_FLAG = 0;
end
excute net_file;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'net_file'
qqq1 = 'Network File Name :';
qqq2=' Input File containing RNN parameters (.m)';
if(File_Pop_FLAG == 0)
NetFileName = get(NetFileNameEdTHndl,'String');
Net_File_Name = NetFileName;
end
if(File_Pop_FLAG == 1)
NetFileName = Net_File_Name;
end
ff = check_net_file(NetFileName);
if(ff == 1)
FileName1 = extract_name(NetFileName);
eval(FileName1);
qqq3 = sprintf('----> File (%s) is loaded successfully',NetFileName);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
N_Total = N_Input + N_Hidden + N_Output; %Total Number of Neurons
%%%%%%%%%%%% load parameters %%%%%%%%%%%%%%%
set(WeightsFileNameEdTHndl,'Enable','on','String',Weights_File_Name);
set(Checkbox1Hndl,'Value',1);
excute save_wts;
set(AcceptPBHndl,'Enable','on');
set(ResetPBHndl,'Enable','on');
set(EditTestFilePBHndl,'Enable','on');
set(EditTrainFilePBHndl,'Enable','on');
set(AcceptMnuHndl,'Enable','on');
set(ResetMnuHndl,'Enable','on');
set(EditTestFileMnuHndl,'Enable','on');
set(EditTrainFileMnuHndl,'Enable','on');
end
if(ff == 0)
qqq3 = sprintf('----> Invalid Network File (%s)',NetFileName);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
end
if(ff == -1)
qqq3 = sprintf('----> Error opening File (%s)',NetFileName);
qqq4 = '-----> Check the network file name (.m)';
qqq = str2mat(qqq1,qqq2,qqq3,qqq4);
display_message(qqq);
end
File_Pop_FLAG = 0;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'trn_file'
qqq1 = 'Train Data File Name :';
qqq2 = ' Input File containing Train Data (.m)';
TrnFileName = get(TrainFileNameEdTHndl,'String');
Train_File_Name = TrnFileName;
ff = check_trn_file(TrnFileName);
if(ff == 1)
FileName1 = extract_name(TrnFileName);
eval(FileName1);
sss = size(TRAIN_INPUT);
if(sss(1) ~= N_Patterns)
qqq3 = 'Error : Check Number of Train Patterns';
TRN_FLAG = 0;
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
elseif (sss(2) ~= N_Input)
qqq3 = 'Error : Check Number of Input Nodes';
TRN_FLAG = 0;
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
else
qqq3 = sprintf('----> File (%s) is loaded successfully',TrnFileName);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
end
end
if(ff == 0)
qqq3 = sprintf('----> Invalid Network File (%s)',TrnFileName);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
end
if(ff == -1)
qqq3 = sprintf('----> Error opening File (%s)',TrnFileName);
qqq4 = '-----> Check the train data file name (.m)';
qqq = str2mat(qqq1,qqq2,qqq3,qqq4);
display_message(qqq);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'wts_file'
qqq1 = 'Weights File Name :';
qqq2=' File containing resulted weights (.mat)';
WtsFileName = get(WeightsFileNameEdTHndl,'String');
Weights_File_Name = WtsFileName;
qqq3 = sprintf('----> File (%s) is loaded successfully',WtsFileName);
qqq4 = sprintf('----> New File will be created (%s)',WtsFileName);
qqq5 = sprintf('----> File ( %s )is not a valid MATLAB MAT file',WtsFileName);
WTS_FLAG = 0;
ff = check_wts_file(WtsFileName);
if(ff == 1)
WTS_FLAG = 1;
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Weights_File_Name_FLAG = 1;
WTS_FLAG_OLD = 1;
WTS_FLAG_NEW = 0;
varnames = ['N_Input' ' ' 'N_Hidden' ' ' 'N_Output' ' ' 'Mse_Threshold' ' ' 'Eta' ' '];
varnames = [varnames 'N_Iterations' ' ' 'R_Out' ' ' 'RAND_RANGE' ' ' 'FIX_RIN' ' ' 'R_IN' ' '];
varnames = [varnames 'N_Saved_Iterations' ' ' 'Net_File_Name' ' '];
varnames = [varnames 'Train_File_Name' ' ' 'Weights_File_Name' ' ' 'Test_File_Name' ' '];
varnames = [varnames 'Log_File_Name' ' ' 'N_Total' ' ' 'last_iter' ' ' 'MSEaveg'];
mess = sprintf('load %s %s',Weights_File_Name, varnames);
eval(mess)
set(NetFileNameEdTHndl,'Enable','on','String',Net_File_Name);
set(TrainFileNameEdTHndl,'Enable','off','String',Train_File_Name);
set(TestFileNameEdTHndl,'Enable','off','String',Test_File_Name);
set(LogFileNameEdTHndl,'Enable','on','String',Log_File_Name);
set(WeightsFileNameEdTHndl,'Enable','off');
set(Checkbox1Hndl,'Enable','on');
set(InputNodesEdTHndl,'Enable','off','String',num2str(N_Input));
set(HiddenNodesEdTHndl,'Enable','off','String',num2str(N_Hidden));
set(OutputNodesEdTHndl,'Enable','off','String',num2str(N_Output));
set(LearningRateEdTHndl,'Enable','off','String',num2str(Eta));
set(OutputRateEdTHndl,'Enable','off','String',num2str(R_Out));
set(StopIterationEdTHndl,'Enable','on','String',num2str(N_Iterations));
set(StopMSEEdTHndl,'Enable','on','String',num2str(Mse_Threshold));
set(InitialWeightsRangeEdTHndl,'Enable','on','String',num2str(RAND_RANGE));
set(InitialWeightsRangeSliHndl,'Enable','on','Value',RAND_RANGE);
set(SaveIterEdTHndl,'Enable','on','String',num2str(N_Saved_Iterations));
set(LoadedIterEdTHndl,'String',num2str(last_iter));
set(LoadedMSEEdTHndl,'String',num2str(MSEaveg));
set(InitialWeightsRangeEdTHndl,'Enable','off');
set(InitialWeightsRangeSliHndl,'Enable','off');
set(LoadedIterEdTHndl,'String',num2str(last_iter));
set(LoadedMSEEdTHndl,'String',num2str(MSEaveg));
set(InitialWeightsRangeEdTHndl,'Enable','off');
set(InitialWeightsRangeSliHndl,'Enable','off');
excute trn_file;
excute tst_file;
excute log_file;
end
if(ff == -1)
WTS_FLAG = 1;
FileName = get(WeightsFileNameEdTHndl,'String');
Weights_File_Name = FileName;
set(LoadedIterEdTHndl,'String','0');
set(LoadedMSEEdTHndl,'String','None');
set(InitialWeightsRangeEdTHndl,'Enable','on');
set(InitialWeightsRangeSliHndl,'Enable','on');
qqq = str2mat(qqq1,qqq2,qqq4);
display_message(qqq);
WTS_FLAG_OLD = 0;
WTS_FLAG_NEW = 1;
Weights_File_Name_FLAG = 1;
MSEaveg = 100000;
Save_Weights = 1;
set(LoadedIterEdTHndl,'String',num2str(0));
set(LoadedMSEEdTHndl,'String','None');
set(NetFileNameEdTHndl,'Enable','on','String',Net_File_Name);
set(TrainFileNameEdTHndl,'Enable','on','String',Train_File_Name);
set(TestFileNameEdTHndl,'Enable','on','String',Test_File_Name);
set(LogFileNameEdTHndl,'Enable','on','String',Log_File_Name);
set(Checkbox1Hndl,'Enable','on');
set(InputNodesEdTHndl,'Enable','off','String',num2str(N_Input));
set(HiddenNodesEdTHndl,'Enable','off','String',num2str(N_Hidden));
set(OutputNodesEdTHndl,'Enable','off','String',num2str(N_Output));
set(LearningRateEdTHndl,'Enable','on','String',num2str(Eta));
set(OutputRateEdTHndl,'Enable','on','String',num2str(R_Out));
set(StopIterationEdTHndl,'Enable','on','String',num2str(N_Iterations));
set(StopMSEEdTHndl,'Enable','on','String',num2str(Mse_Threshold));
set(InitialWeightsRangeEdTHndl,'Enable','on','String',num2str(RAND_RANGE));
set(InitialWeightsRangeSliHndl,'Enable','on','Value',RAND_RANGE);
excute trn_file;
excute tst_file;
excute log_file;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'tst_file'
qqq1 = 'Test Data File Name :';
qqq2=' Input File containing Test Data (.m)';
TstFileName = get(TestFileNameEdTHndl,'String');
Test_File_Name = TstFileName;
ff = check_tst_file(TstFileName);
if(ff == 1)
FileName1 = extract_name(TstFileName);
eval(FileName1);
sss = size(TEST_INPUT);
if(sss(1) ~= N_Patterns)
qqq3 = 'Error : Check Number of Test Patterns';
TST_FLAG = 0;
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
elseif (sss(2) ~= N_Input)
qqq3 = 'Error : Check Number of Input Nodes';
TST_FLAG = 0;
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
else
qqq3 = sprintf('----> File (%s) is loaded successfully',TstFileName);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
end
end
if(ff == 0)
qqq3 = sprintf('----> Invalid Test File ( %s )',TstFileName);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
end
if(ff == -1)
qqq3 = sprintf('----> Error opening File (%s)',TstFileName);
qqq4 = '-----> Check the Test Data file name (.m)';
qqq = str2mat(qqq1,qqq2,qqq3,qqq4);
display_message(qqq);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'log_file'
qqq1 = 'Log Data File Name :';
qqq2 = ' Output File containing Test Results (.m)';
FileName = get(LogFileNameEdTHndl,'String');
qqq3 = sprintf('----> File (%s) is opened successfully',FileName);
qqq4 = sprintf('----> Error opening File (%s)',FileName);
qqq5 = '-----> Check the Test Disk Space';
ff = fopen(FileName,'w');
if(ff ~= -1)
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
fclose(ff);
else
qqq = str2mat(qqq1,qqq2,qqq4,qqq5);
display_message(qqq);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'save_wts'
qqq1 = 'Weights :';
qqq2 = 'Will be saved after the number of ';
qqq3 = 'iterations defined in the parameters';
qqq4 = sprintf('to file ( %s )',Weights_File_Name);
qqq5 = ' ';
qqq6 = 'The current parameters are loaded from';
qqq7 = sprintf('the file ( %s )',Weights_File_Name);
qqq8 = 'Will not be saved to ';
qqq9 = sprintf('( %s ) but it will be',Weights_File_Name);
qqq10 = sprintf('saved temporarily to ( %s )',Temp_Weights_File_Name);
qqq11 = ' ';
qqq12 = 'The current parameters are loaded from';
qqq13 = sprintf('the file ( %s )',Net_File_Name);
box_value = get(Checkbox1Hndl,'Value');
if(box_value == 0)
ff = check_net_file(Net_File_Name);
if(ff == 1)
FileName1 = extract_name(Net_File_Name);
eval(FileName1);
end
Save_Weights = 0;
Save_Weights_On = 0;
set(SaveIterEdTHndl,'String','None');
set(SaveIterEdTHndl,'Enable','off');
set(WeightsFileNameEdTHndl,'String','');
set(HiddenNodesEdTHndl,'Enable','on');
set(LoadedIterEdTHndl,'String','0');
set(LoadedMSEEdTHndl,'String','None');
set(InitialWeightsRangeSliHndl,'Enable','on');
set(InitialWeightsRangeEdTHndl,'Enable','on');
set(NetFileNameEdTHndl,'Enable','on','String',Net_File_Name);
set(TrainFileNameEdTHndl,'Enable','off','String',Train_File_Name);
set(TestFileNameEdTHndl,'Enable','off','String',Test_File_Name);
set(LogFileNameEdTHndl,'Enable','on','String',Log_File_Name);
set(Checkbox1Hndl,'Enable','on');
set(InputNodesEdTHndl,'String',num2str(N_Input));
set(HiddenNodesEdTHndl,'Enable','on','String',num2str(N_Hidden));
set(OutputNodesEdTHndl,'Enable','off','String',num2str(N_Output));
set(LearningRateEdTHndl,'Enable','on','String',num2str(Eta));
set(OutputRateEdTHndl,'Enable','on','String',num2str(R_Out));
set(StopIterationEdTHndl,'Enable','on','String',num2str(N_Iterations));
set(StopMSEEdTHndl,'Enable','on','String',num2str(Mse_Threshold));
set(InitialWeightsRangeEdTHndl,'Enable','on','String',num2str(RAND_RANGE));
set(InitialWeightsRangeSliHndl,'Enable','on','Value',RAND_RANGE);
set(InputNodesEdTHndl,'Enable','off');
set(HiddenNodesEdTHndl,'Enable','on');
WTS_FLAG_OLD = 0;
WTS_FLAG_NEW = 1;
qqq = str2mat(qqq1,qqq8,qqq9,qqq10,qqq11,qqq12,qqq13);
display_message(qqq);
end
if(box_value == 1)
Save_Weights = 1;
Save_Weights_On = 1;
set(SaveIterEdTHndl,'Enable','on');
set(SaveIterEdTHndl,'String',num2str(N_Saved_Iterations));
set(WeightsFileNameEdTHndl,'String',Weights_File_Name);
set(HiddenNodesEdTHndl,'Enable','off');
set(OutputNodesEdTHndl,'Enable','off');
set(InitialWeightsRangeSliHndl,'Enable','off');
set(InitialWeightsRangeEdTHndl,'Enable','off');
excute wts_file;
qqq = str2mat(qqq1,qqq2,qqq3,qqq4,qqq5,qqq6,qqq7);
display_message(qqq);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'Hidden_Nodes'
qqq1 = 'Hidden nodes :';
qqq2 = ' Number of Hidden Nodes in the Neural Network';
str = get(HiddenNodesEdTHndl,'String');
num = str2num(str);
if(isempty(num) ~=1)
if(num > 0)
if(mod(num,1) == 0)
N_Hidden = num;
qqq3 = sprintf('( %s ) Hidden Nodes ------> O.K',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Hidden_Nodes_FLAG = 1;
else
qqq3 = sprintf('( %s ) is fractional number of Hidden Nodes ------> ERROR',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Hidden_Nodes_FLAG = 0;
end
else
qqq3 = sprintf('( %s ) is negative number of Hidden Nodes ------> ERROR',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Hidden_Nodes_FLAG = 0;
end
else
qqq3 = sprintf('( %s ) is an invalid number ------> ERROR',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Hidden_Nodes_FLAG = 0;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'Learning_Rate'
qqq1 = 'Learning Rate ( Eta ) :';
qqq2 = ' Learning Rate ( Eta ) of the Learning Algorithm ( 0.0 - 1.0)';
str = get(LearningRateEdTHndl,'String');
num = str2num(str);
if(isempty(num) ~=1)
if(num > 0 & num <= 1)
Eta = num;
qqq3 = sprintf('( %s ) Learning Rate ------> O.K',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Learning_Rate_FLAG = 1;
else
qqq3 = sprintf(' %s ( Eta should be between 0.0 and 1.0 ) ------> ERROR',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Learning_Rate_FLAG = 0;
end
if(num < 0 )
qqq3 = sprintf('( %s ) is negative Learning Rate ------> ERROR',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Learning_Rate_FLAG = 0;
end
else
qqq3 = sprintf('( %s ) is an invalid number ------> ERROR',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Learning_Rate_FLAG = 0;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'Output_Rate'
qqq1 = 'Output Rate :';
qqq2 = ' Firing Rate of the output Nodes ';
str = get(OutputRateEdTHndl,'String');
num = str2num(str);
if(isempty(num) ~=1)
if(num > 0 & num <= 3)
R_Out = num;
qqq3 = sprintf('( %s ) Output Firing Rate ------> O.K',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Output_Rate_FLAG = 1;
else
qqq3 = sprintf(' %s ( Allowed Range 0.0 3.0 ) ------> ERROR',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Output_Rate_FLAG = 0;
end
if(num < 0 )
qqq3 = sprintf('( %s ) is negative Firing Rate ------> ERROR',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Output_Rate_FLAG = 0;
end
else
qqq3 = sprintf('( %s ) is an invalid number ------> ERROR',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Output_Rate_FLAG = 0;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'Stop_Iteration'
qqq1 = 'Stop Iteration :';
qqq2 = ' Number of Iterations After which Learning will stop';
str = get(StopIterationEdTHndl,'String');
num = str2num(str);
if(isempty(num) ~=1)
if(num > 0)
if(mod(num,1) == 0)
N_Iterations = num;
qqq3 = sprintf('( %s ) Iterations ------> O.K',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Stop_Iteration_FLAG = 1;
else
qqq3 = sprintf('( %s ) is fractional number of Iterations ------> ERROR',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Stop_Iteration_FLAG = 0;
end
else
qqq3 = sprintf('( %s ) is negative number of Iterations ------> ERROR',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Stop_Iteration_FLAG = 0;
end
else
qqq3 = sprintf('( %s ) is an invalid number ------> ERROR',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Stop_Iteration_FLAG = 0;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'Stop_MSE'
qqq1 = 'Stop MSE :';
qqq2 = ' Mean Squared Error below which the training will stop';
str = get(StopMSEEdTHndl,'String');
num = str2num(str);
if(isempty(num) ~=1)
if(num > 0 & num <= 1)
Mse_Threshold = num;
qqq3 = sprintf('( %s ) Stop MSE ------> O.K',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Stop_MSE_FLAG = 1;
else
qqq3 = sprintf(' %s ( Stop MSE should be between 0.0 and 1.0 ) ------> ERROR',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Stop_MSE_FLAG = 0;
end
if(num < 0 )
qqq3 = sprintf('( %s ) is negative Stop MSE ------> ERROR',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Stop_MSE_FLAG = 0;
end
else
qqq3 = sprintf('( %s ) is an invalid number ------> ERROR',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Stop_MSE_FLAG = 0;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'Save_Iter'
qqq1 = 'Save Iter. :';
qqq2 = ' Number of Iterations After which Weights Will be Saved (Auto Save flag should be checked on)';
if(Save_Weights == 1)
str = get(SaveIterEdTHndl,'String');
num = str2num(str);
if(isempty(num) ~=1)
if(num > 0)
if(mod(num,1) == 0)
N_Saved_Iterations = num;
qqq3 = sprintf('( %s ) Iterations ------> O.K',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Save_Iter_FLAG = 1;
else
qqq3 = sprintf('( %s ) is fractional number of Iterations ------> ERROR',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Save_Iter_FLAG = 0;
end
else
qqq3 = sprintf('( %s ) is negative number of Iterations ------> ERROR',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Save_Iter_FLAG = 0;
end
else
qqq3 = sprintf('( %s ) is an invalid number ------> ERROR',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Save_Iter_FLAG = 0;
end
else
qqq3 = 'Auto Save flag is not checked on ';
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Save_Iter_FLAG = 0;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'Initial_Weights_Range_EdT'
qqq1 = 'Initial Weight Rage :';
qqq2 = 'Initial Random Weights will be generted between 0.0 and - Initial Weight Rage)';
str = get(InitialWeightsRangeEdTHndl,'String');
num = str2num(str);
set(InitialWeightsRangeSliHndl,'value',num);
if(isempty(num) ~=1)
if(num > 0 & num <= 1)
RAND_RANGE = num;
qqq3 = sprintf('( %s ) Range ------> O.K',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Initial_Weight_Rage_FLAG = 1;
else
qqq3 = sprintf(' %s ( Range should be between 0.0 and 1.0 ) ------> ERROR',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Initial_Weight_Rage_FLAG = 0;
end
if(num < 0 )
qqq3 = sprintf('( %s ) is negative Rage ------> ERROR',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Initial_Weight_Rage_FLAG = 0;
end
else
qqq3 = sprintf('( %s ) is an invalid number ------> ERROR',str);
qqq = str2mat(qqq1,qqq2,qqq3);
display_message(qqq);
Initial_Weight_Rage_FLAG = 0;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'Initial_Weights_Range_Sli'
num = get(InitialWeightsRangeSliHndl,'value');
set(InitialWeightsRangeEdTHndl,'string',num2str(num));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
end %switch
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function ff = check_net_file(NAME)
global NET_FLAG
if(strcmp(NAME, '') == 1)
ff = -2;
return
end
if(exist(NAME) ~= 0)
FileName1 = extract_name(NAME);
NET_FLAG = 0;
eval(FileName1);
if(NET_FLAG == 1)
ff = 1; %OK
else
ff = 0; %invalid network file
end
else
ff = -1; %file not found
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function ff = check_trn_file(NAME)
global TRN_FLAG;
if(strcmp(NAME, '') == 1)
ff = -2;
return
end
if(exist(NAME) ~= 0)
FileName1 = extract_name(NAME);
TRN_FLAG = 0;
eval(FileName1);
if(TRN_FLAG == 1)
ff = 1; %OK
else
ff = 0; %invalid train file
end
else
ff = -1; %file not found
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function ff = check_tst_file(NAME)
global TST_FLAG;
if(strcmp(NAME, '') == 1)
ff = -2;
return
end
if(exist(NAME) ~= 0)
FileName1 = extract_name(NAME);
TST_FLAG = 0;
eval(FileName1);
if(TST_FLAG == 1)
ff = 1; %OK
else
ff = 0; %invalid test file
end
else
ff = -1; %file not found
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function ff = check_wts_file(NAME)
if(exist(NAME) ~= 0)
ff = 1; %OK
else
ff = -1; %file not found
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function display_message(message)
OutputFigHndl = findobj('Tag','RnnFig');
OutputFigStTHndl = findobj(OutputFigHndl,'Tag','StaticText1');
set(OutputFigStTHndl,'HorizontalAlignment','left');
set(OutputFigStTHndl,'FontSize',8);
set(OutputFigStTHndl,'FontWeight','normal');
set(OutputFigStTHndl,'FontAngle','normal');
set(OutputFigStTHndl,'String',message);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function nn = extract_name(Name)
for i=1:length(Name)
if(Name(i) ~= '.')
nn(i) = Name(i);
else
break;
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%