📄 switchyard.m
字号:
% function switchyard(action) - catches all callback function calls and executes the appropriate code
function switchyard(action)
switch(action)
case 'About'
disp('GCS Visualisation tool');
GcsProj = get(gcbf,'UserData'); % Read existing structure so that training data is not lost
GcsProj
GcsProj.Gcs
case 'LoadNet'
[filename,path] = uigetfile('*.mat','Load GCS Network');
if path ~= 0
eval(['load ', path, filename]);
% load training data from separate file
eval(['load ', path, Gcs.Trainfilename]);
GcsProj = get(gcbf,'UserData'); % Read existing structure so that training data is not lost
GcsProj = trdata;
GcsProj.Gcs = Gcs;
GcsProj.Gcs.Status = 'Idle';
GcsProj.Gcs.StatusColour = 'default';
set(gcbf,'UserData',GcsProj);
end
DispState
case 'DrawNet'
cla;
whitebg('white');
GcsProj = get(gcbf,'UserData');
DispState;
case 'ChangeSaveDir'
[filename,pathname] = uiputfile('Gcs.mat','Save File in desired working directory');
if (filename ~=0)
cd(pathname);
GcsProj = get(gcbf,'UserData');
Gcs = GcsProj.Gcs;
eval(['save ' filename ' Gcs']);
end
case 'Replot'
GcsProj = get(gcbf,'UserData');
GcsProj = replot(GcsProj);
set(gcbf,'UserData',GcsProj);
DispState;
case 'NewNet'
set(gcbf,'UserData',GcsProject);
DispState;
case 'Train'
GcsProj = get(gcbf,'UserData');
if isempty(GcsProj.dataAll)
uiwait(errordlg('Load a training set first!'));
else
TrainNet(GcsProj);
end
case 'Factor'
GcsProj = get(gcbf,'UserData');
Factor(GcsProj);
case 'NameChange'
GcsProj = get(gcbf,'UserData');
GcsProj.Gcs.Name = get(findobj(gcbf,'Tag','NameEdit'),'String');
set(gcbf,'UserData',GcsProj);
case 'LoadTrain'
GcsProj = get(gcbf,'UserData');
[filename,pathname] = uigetfile('*.*','Select Training Data File');
if (filename~=0)
if findstr('.mat',filename) % .mat files are assumed to be previously processed training sets
eval(['load ', pathname, filename]);
GcsProj = get(gcbf,'UserData');
tempGcs = GcsProj.Gcs;
GcsProj = trdata;
GcsProj.Gcs = tempGcs;
GcsProj.Gcs.Status = 'Idle';
GcsProj.Gcs.StatusColour = 'default';
GcsProj.Gcs.NoClasses =max(GcsProj.dataAll(:,size(GcsProj.dataAll,2)));
GcsProj.Gcs.n = size(GcsProj.dataAll,2)-1;
for cindex=1:GcsProj.Gcs.NoClasses
eval(['GcsProj.Gcs.accv' int2str(cindex) ' =[];']);
end
set(gcbf,'UserData',GcsProj);
DispState;
else
[data,labels,classes] = readdata([pathname,filename],',');
GcsProj.dataAll = data;
%GcsProj.train = data;
%GcsProj.test = data;
GcsProj.NoTrain = size(data,1);
GcsProj.NoTest = 0;
GcsProj.IpLabels = labels;
GcsProj.ClassLabels = classes;
if isempty(classes)
GcsProj.Gcs.NoClasses =max(data(:,size(data,2)));
else
GcsProj.Gcs.NoClasses = size(classes,1);
end
GcsProj.Gcs.n = size(data,2)-1;
for cindex=1:GcsProj.Gcs.NoClasses
eval(['GcsProj.Gcs.accv' int2str(cindex) ' =[];']);
end
set(gcbf,'UserData',GcsProj);
DispState;
end
end
case 'SetParams'
pwin = paramwin;
SetParams('Display');
case 'NoEpochChange'
GcsProj = get(gcbf,'UserData');
GcsProj.epochspernode = str2num(get(findobj(gcbf,'Tag','NoEpochEdit'),'String'));
set(gcbf,'UserData',GcsProj);
case 'NoNodesChange'
GcsProj = get(gcbf,'UserData');
GcsProj.NoNewNodes = str2num(get(findobj(gcbf,'Tag','NoNodesEdit'),'String'));
set(gcbf,'UserData',GcsProj);
case 'Normalise'
GcsProj = get(gcbf,'UserData');
GcsProj.Gcs.Normalise = get(findobj(gcbf,'Tag','Normalise'),'Value');
set(gcbf,'UserData',GcsProj);
case 'EqualPriors'
GcsProj = get(gcbf,'UserData');
GcsProj.Gcs.EqualPriors = get(findobj(gcbf,'Tag','EqualPriors'),'Value');
set(gcbf,'UserData',GcsProj);
case 'NoTrainChange'
GcsProj = get(gcbf,'UserData');
if ~isempty(GcsProj.dataAll)
GcsProj.NoTrain = str2num(get(findobj(gcbf,'Tag','NoTrainEdit'),'String'));
GcsProj.NoTest = size(GcsProj.dataAll,1)-GcsProj.NoTrain;
else
GcsProj.NoTrain = 0;
end
set(gcbf,'UserData',GcsProj);
DispState;
case 'NoTestChange'
GcsProj = get(gcbf,'UserData');
if ~isempty(GcsProj.dataAll)
GcsProj.NoTest = str2num(get(findobj(gcbf,'Tag','NoTestEdit'),'String'));
GcsProj.NoTrain = size(GcsProj.dataAll,1)-GcsProj.NoTest;
else
GcsProj.NoTest = 0;
end
set(gcbf,'UserData',GcsProj);
DispState;
case 'ColourChange'
GcsProj = get(gcbf,'UserData');
GcsProj.Colour = get(findobj(gcbf,'Tag','Colour'),'Value');
if GcsProj.Colour == 1
GcsProj.Gcs.c='jet';
else
GcsProj.Gcs.c='gray';
end
set(gcbf,'UserData',GcsProj);
case 'Locate'
Locate;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -