📄 struct_analysis_ui.m
字号:
function fig = struct_analysis_ui(varargin)
if (nargin == 0),
init;
setappdata(gcf,'CallingFigure',gcbf);
set(gcbf,'visible','off');
uiwait(gcf);
close(gcf);
return;
end;
% clear the message line,
%
h = findobj(gcf,'Tag','MessageLine');
set(h,'String','');
action = upper(varargin{1});
switch (action)
case {'MENU_DESELECT_CONDITION'}
deselect_condition;
case {'MENU_MODIFY_BEHAVDATA'}
modify_behavdata;
case {'MENU_MULTIBLOCK_DESELECT_CONDITION'}
multiblock_deselect_condition;
case {'MENU_CREATE_CONTRASTS'}
pls_session = '';
num_groups = 0;
cond_selection = [];
tmp = getappdata(gcf);
if ~isempty(tmp.CurrGroupProfiles)
pls_session = tmp.CurrGroupProfiles{1};
num_groups = length(tmp.CurrGroupProfiles);
end
if ~isempty(tmp.cond_selection)
cond_selection = tmp.cond_selection;
end
if isempty(pls_session)
msg = 'Group need to be added before you can open contrast window';
set(findobj(gcf,'Tag','MessageLine'),'String',msg);
return;
end
contrast_ui_fig = rri_input_contrast_ui({'STRUCT'},pls_session,cond_selection,num_groups);
waitfor(contrast_ui_fig);
case {'SELECT_GROUP'}
SelectGroupProfiles;
case {'DELETE_GROUP'}
DeleteGroupProfiles;
case {'ADD_GROUP'}
AddGroupProfiles;
case {'MOVE_SLIDER'}
MoveSlider;
case {'BUTTONDOWN_GROUP'}
msg = 'Use Add button to add the group';
set(findobj(gcf,'Tag','MessageLine'),'String',msg);
case {'TOGGLE_SAVE_DATAMAT'}
SwitchSaveDatamat;
case {'TOGGLE_FULL_PATH'}
SwitchFullPath;
case {'TASKPLS_SELECTED'}
SelectTaskPLS;
case {'CONTRASTDATA_SELECTED'}
SelectContrastData;
case {'BEHAVPLS_SELECTED'}
SelectBehavPLS;
case {'MULTIBLOCK_SELECTED'}
SelectMultiblockData;
case {'EDIT_NUM_BOOT'}
EditNumBoot;
case{'EDIT_POSTHOC_DATA_FILE'}
EditPosthocDataFile;
case{'SELECT_POSTHOC_DATA_FILE'}
SelectPosthocDataFile;
case {'BROWSE_CONTRAST_FILE'}
dlg_title = 'Select Contrast File';
[contrast_file,contrast_path] = uigetfile('*_STRUCTcontrast.txt',dlg_title);
if (contrast_file ~= 0)
c_filename = fullfile(contrast_path,contrast_file);
set(findobj(gcf,'Tag','ContrastFileEdit'),'String',c_filename);
set(findobj(gcf,'Tag','ContrastFileEdit'),'TooltipString',c_filename);
end;
% Run Task and Behavioral PLS
%
case {'RUN_BUTTON_PRESSED'}
if SavePLSOptions == 1
ExecutePLS;
end
case {'CRUN_BUTTON_PRESSED'}
if (SavePLSOptions == 1);
if cExecutePLS;
calling_fig = getappdata(gcf,'CallingFigure');
close(calling_fig);
close(gcf);
disp(' ');
disp('Batch file is created! You can follow Batch Process')
disp('section in PLSgui User''s Guide to run PLS analysis.');
disp(' ');
% uiresume(gcf);
end
end;
case {'CANCEL_BUTTON_PRESSED'}
uiresume(gcf);
return;
case {'DELETE_FIGURE'}
calling_fig = getappdata(gcf,'CallingFigure');
set(calling_fig,'visible','on');
try
load('pls_profile');
pls_profile = which('pls_profile.mat');
struct_analysis_pos = get(gcbf,'position');
save(pls_profile, '-append', 'struct_analysis_pos');
catch
end
otherwise
disp(sprintf('ERROR: Unknown action "%s"',action));
end;
return;
% --------------------------------------------------------------------
function init()
save_setting_status = 'on';
struct_analysis_pos = [];
try
load('pls_profile');
catch
end
if ~isempty(struct_analysis_pos) & strcmp(save_setting_status,'on')
pos = struct_analysis_pos;
else
w = 0.6;
h = 0.8;
x = (1-w)/2;
y = (1-h)/2;
pos = [x y w h];
end
h0 = figure('Color',[0.8 0.8 0.8], ...
'Units','normal', ...
'Name','PLS Analysis for STRUCT datamat', ...
'NumberTitle', 'off', ...
'Position',pos, ...
'Menubar','none', ...
'DeleteFcn','struct_analysis_ui(''DELETE_FIGURE'');', ...
'Tag','PermutationOptionsFigure', ...
'ToolBar','none');
%-------------- group frame -----------------
%
x = 0.04;
y = 0.66;
w = 0.92;
h = 0.3;
pos = [x y w h];
h1 = uicontrol('Parent',h0, ...
'Units','normal', ...
'BackgroundColor',[0.7 0.7 0.7], ...
'ListboxTop',0, ...
'Position',pos, ...
'Style','frame', ...
'Tag','GroupProfileFrame');
x = 0.06;
h = 0.05;
y = 0.9 - 0.2*h;
w = 0.5;
pos = [x y w h];
fnt = 0.5;
h1 = uicontrol('Parent',h0, ...
'Units','normal', ...
'BackgroundColor',[0.7 0.7 0.7], ...
'fontunit','normal', ...
'FontSize',fnt, ...
'HorizontalAlignment','left', ...
'ListboxTop',0, ...
'Position',pos, ...
'String','Datamat File', ...
'Style','text', ...
'Tag','SessionProfileLabel');
x = 0.08;
y = 0.85;
w = 0.15;
pos = [x y w h];
g_h1 = uicontrol('Parent',h0, ...
'Units','normal', ...
'BackgroundColor',[0.7 0.7 0.7], ...
'fontunit','normal', ...
'FontSize',fnt, ...
'HorizontalAlignment','right', ...
'ListboxTop',0, ...
'Position',pos, ...
'String','Group #1:', ...
'Style','text', ...
'Tag','GroupLabel');
x = x+w+0.01;
w = 0.4;
pos = [x y w h];
g_h2 = uicontrol('Parent',h0, ...
'Units','normal', ...
'BackgroundColor',[0.9 0.9 0.9], ...
'fontunit','normal', ...
'FontSize',fnt, ...
'HorizontalAlignment','left', ...
'ListboxTop',0, ...
'Position',pos, ...
'String','', ...
'Style','edit', ...
'Enable','inactive', ...
'Tag','GroupEdit');
x = x + w + 0.01;
w = 0.1;
pos = [x y w h];
g_h3 = uicontrol('Parent',h0, ...
'Units','normal', ...
'fontunit','normal', ...
'FontSize',fnt, ...
'ListboxTop',0, ...
'Position',pos, ...
'String','Add', ...
'Tag','GroupAddButton');
x = x + w;
w = 0.1;
pos = [x y w h];
g_h4 = uicontrol('Parent',h0, ...
'Units','normal', ...
'fontunit','normal', ...
'FontSize',fnt, ...
'ListboxTop',0, ...
'Position',pos, ...
'String','Select', ...
'Tag','GroupSelectButton');
x = x + w + 0.01;
w = 0.04;
pos = [x y w h];
h1 = uicontrol('Parent',h0, ... % scroll bar
'Style', 'slider', ...
'Units','normal', ...
'Min',1, ...
'Max',20, ...
'Value',20, ...
'Position',pos, ...
'Callback','struct_analysis_ui(''MOVE_SLIDER'');', ...
'Tag','GroupSlider');
x = 0.08;
y = 0.68 - 0.2*h;
w = 0.18;
pos = [x y w h];
h1 = uicontrol('Parent',h0, ...
'Units','normal', ...
'BackgroundColor',[0.7 0.7 0.7], ...
'fontunit','normal', ...
'FontSize',fnt, ...
'HorizontalAlignment','right', ...
'ListboxTop',0, ...
'Position',pos, ...
'String','Group Total:', ...
'Style','text', ...
'Tag','NumGroupLabel');
x = x+w+0.02;
y = 0.68;
w = 0.08;
pos = [x y w h];
h1 = uicontrol('Parent',h0, ...
'Units','normal', ...
'BackgroundColor',[0.9 0.9 0.9], ...
'fontunit','normal', ...
'FontSize',fnt, ...
'ListboxTop',0, ...
'Position',pos, ...
'String','0', ...
'Style','edit', ...
'Enable','Inactive', ...
'Tag','NumberGroupEdit');
x = x+w+0.04;
w = 0.26;
pos = [x y w h];
h1 = uicontrol('Parent',h0, ...
'Style','checkbox', ...
'Units','normal', ...
'BackgroundColor',[0.7 0.7 0.7], ...
'fontunit','normal', ...
'FontSize',fnt, ...
'ListboxTop',0, ...
'Value', 0, ...
'Position',pos, ...
'HorizontalAlignment','left', ...
'String','Save Datamats', ...
'Tag','SaveDatamatChkbox');
x = x+w+0.04;
w = 0.18;
pos = [x y w h];
h1 = uicontrol('Parent',h0, ...
'Style','checkbox', ...
'Units','normal', ...
'BackgroundColor',[0.7 0.7 0.7], ...
'fontunit','normal', ...
'FontSize',fnt, ...
'ListboxTop',0, ...
'Value', 0, ...
'Position',pos, ...
'HorizontalAlignment','left', ...
'String','Full Path', ...
'Callback','struct_analysis_ui(''TOGGLE_FULL_PATH'');', ...
'Tag','FullPathChkbox');
%-------------- contrast frame -----------------
%
x = 0.04;
y = 0.35;
w = 0.92;
h = 0.3;
pos = [x y w h];
h1 = uicontrol('Parent',h0, ...
'Units','normal', ...
'BackgroundColor',[0.7 0.7 0.7], ...
'ListboxTop',0, ...
'Position',pos, ...
'Style','frame', ...
'Tag','ContrastFrame');
x = 0.06;
h = 0.05;
y = 0.59 - 0.2*h;
w = 0.5;
pos = [x y w h];
h1 = uicontrol('Parent',h0, ...
'Units','normal', ...
'BackgroundColor',[0.7 0.7 0.7], ...
'fontunit','normal', ...
'FontSize',fnt, ...
'HorizontalAlignment','left', ...
'ListboxTop',0, ...
'Position',pos, ...
'String','PLS Option', ...
'Style','text', ...
'Tag','ContrastsLabel');
x = 0.12;
y = 0.54;
w = 0.35;
h = 0.05;
pos = [x y w h];
h1 = uicontrol('Parent',h0, ...
'Units','normal', ...
'BackgroundColor',[0.7 0.7 0.7], ...
'fontunit','normal', ...
'FontSize',fnt, ...
'HorizontalAlignment','left', ...
'ListboxTop',0, ...
'Style','radiobutton', ...
'string','Mean-Centering PLS', ...
'Value',1, ...
'Tag','TaskPLSBn', ...
'Callback','struct_analysis_ui(''TASKPLS_SELECTED'');', ...
'Position',pos);
y = y - h;
pos = [x y w h];
h1 = uicontrol('Parent',h0, ...
'Units','normal', ...
'BackgroundColor',[0.7 0.7 0.7], ...
'fontunit','normal', ...
'FontSize',fnt, ...
'HorizontalAlignment','left', ...
'ListboxTop',0, ...
'Style','radio', ...
'string','Non-Rotated Task PLS', ...
'Value',0, ...
'tag','SelectContrastData', ...
'Callback','struct_analysis_ui(''CONTRASTDATA_SELECTED'');', ...
'position',pos);
x = 0.12;
w = 0.35;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -