📄 bfm_plot_scores_ui.m
字号:
% axis([0 size(designlv,1)+1 0 105]);
axis([min_x,max_x,min_y-margin_y,max_y+margin_y]);
xlabel('Contrasts');
ylabel('Probability (%)');
% title(sprintf('Elements of the design LV smaller than those of the %d permutation %tests',perm_result.num_perm));
if(getappdata(gcf, 'is_design_plot'))
title(sprintf('Permuted design LV greater than observed, %d permutation tests, %d%% crossblock', perm_result.num_perm, cb(lv_idx)));
else
title(sprintf('Permuted behav LV greater than observed, %d permutation tests, %d%% crossblock', perm_result.num_perm, cb(lv_idx)));
end
end
return; % PlotDesignLV
%---------------------------------------------------------------------------
function ToggleLegend
h = findobj(gcf,'Tag','LegendMenu');
legend_state = get(h,'Userdata');
switch (legend_state)
case {0},
set(h,'Userdata',1,'Label','&Hide Legend');
DisplayLegend('on');
case {1},
set(h,'Userdata',0,'Label','&Show Legend');
DisplayLegend('off');
end;
return; % ToggleLegend
%---------------------------------------------------------------------------
function DisplayLegend(on_off)
l_hdls = getappdata(gcf,'LegendHdl');
l_hdls2 = getappdata(gcf,'LegendHdl2');
l_hdls3 = getappdata(gcf,'LegendHdl3');
if ~isempty(l_hdls) & ishandle(l_hdls{1}),
set(l_hdls{1},'Visible',on_off);
num_obj = length(l_hdls{2});
for i=1:num_obj,
set(l_hdls{2}(i),'Visible',on_off);
end;
end
if ~isempty(l_hdls2) & ishandle(l_hdls2{1})
set(l_hdls2{1},'Visible',on_off);
num_obj = length(l_hdls2{2});
for i=1:num_obj,
set(l_hdls2{2}(i),'Visible',on_off);
end;
end
if ~isempty(l_hdls3) & ishandle(l_hdls3{1})
set(l_hdls3{1},'Visible',on_off);
num_obj = length(l_hdls3{2});
for i=1:num_obj,
set(l_hdls3{2}(i),'Visible',on_off);
end;
end
return; % DisplayLegend
%---------------------------------------------------------------------------
function ToggleBrainDesignScores
brain_design_state = getappdata(gcf,'PlotBrainDesignState');
is_design_plot = getappdata(gcf, 'is_design_plot');
switch (brain_design_state)
case {0},
if is_design_plot
m_hdl = findobj(gcf,'Tag','BrainDesignMenu');
set(m_hdl,'Label','Hide &Brain vs Design Scores');
else
m_hdl = findobj(gcf,'Tag','BrainBehavMenu');
set(m_hdl,'Label','Hide &Brain vs Behavior Scores');
end
setappdata(gcf,'PlotBrainDesignState',1);
DisplayBrainDesignScores('on');
% set(findobj(gcf,'Tag','LegendMenu'),'Enable','on');
setappdata(gcf,'PlotDesignLVState',0);
if is_design_plot
m_hdl = findobj(gcf,'Tag','DesignLVMenu');
set(m_hdl,'Label','Show Design &Latent Variables');
else
m_hdl = findobj(gcf,'Tag','BehavLVMenu');
set(m_hdl,'Label','Show Behavior &Latent Variables');
end
case {1},
if is_design_plot
m_hdl = findobj(gcf,'Tag','BrainDesignMenu');
set(m_hdl,'Label','Show &Brain vs Design Scores');
else
m_hdl = findobj(gcf,'Tag','BrainDesignMenu');
set(m_hdl,'Label','Show &Brain vs Behavior Scores');
end
setappdata(gcf,'PlotBrainDesignState',0);
DisplayBrainDesignScores('off');
% set(findobj(gcf,'Tag','LegendMenu'),'Enable','off');
end;
return; % ToggleBrainDesignScores
%---------------------------------------------------------------------------
function DisplayBrainDesignScores(on_off)
design_state = getappdata(gcf,'PlotDesignState');
switch (on_off)
case {'on'},
if (design_state == 1), % need to display design scores
h = getappdata(gcf,'ScoreAxes');
axes(h); cla; set(h,'Visible','off');
set(getappdata(gcf,'ScoreAxes_top'),'Visible','on');
PlotDesignScores;
set(getappdata(gcf,'ScoreAxes_bottom'),'Visible','on');
PlotBrainDesignScores;
else
h = getappdata(gcf,'ScoreAxes_top');
axes(h); cla; set(h,'Visible','off');
h = getappdata(gcf,'ScoreAxes_bottom');
axes(h); cla; set(h,'Visible','off');
h = getappdata(gcf,'ScoreAxes');
axes(h); cla; set(h,'Visible','on');
PlotBrainDesignScores;
end;
case {'off'},
old_legend = getappdata(gcf,'LegendHdl');
if ~isempty(old_legend),
try
delete(old_legend{1});
catch
end;
end;
DisplayLegend('off');
if (design_state == 1)
h = getappdata(gcf,'ScoreAxes_top');
axes(h); cla; set(h,'Visible','off');
h = getappdata(gcf,'ScoreAxes_bottom');
axes(h); cla; set(h,'Visible','off');
h = getappdata(gcf,'ScoreAxes');
axes(h); cla; set(h,'Visible','on');
PlotDesignScores;
else
h = getappdata(gcf,'ScoreAxes');
axes(h); cla; set(h,'Visible','off');
end;
end; % switch
return; % DisplayBrainDesignScores
%---------------------------------------------------------------------------
function ToggleDesignScores
design_state = getappdata(gcf,'PlotDesignState');
is_design_plot = getappdata(gcf, 'is_design_plot');
switch (design_state)
case {0},
if is_design_plot
m_hdl = findobj(gcf,'Tag','DesignMenu');
set(m_hdl,'Label','Hide &Design Scores');
setappdata(gcf,'PlotDesignState',1);
DisplayDesignScores('on');
setappdata(gcf,'PlotDesignLVState',0);
m_hdl = findobj(gcf,'Tag','DesignLVMenu');
set(m_hdl,'Label','Show Design &Latent Variables');
else
m_hdl = findobj(gcf,'Tag','BehavMenu');
set(m_hdl,'Label','Hide &Behavior Scores');
setappdata(gcf,'PlotDesignState',1);
DisplayDesignScores('on');
setappdata(gcf,'PlotDesignLVState',0);
m_hdl = findobj(gcf,'Tag','BehavLVMenu');
set(m_hdl,'Label','Show Behavior &Latent Variables');
end
case {1},
new_state = 0;
if is_design_plot
m_hdl = findobj(gcf,'Tag','DesignMenu');
set(m_hdl,'Label','Show &Design Scores');
else
m_hdl = findobj(gcf,'Tag','BehavMenu');
set(m_hdl,'Label','Show &Behavior Scores');
end
setappdata(gcf,'PlotDesignState',0);
DisplayDesignScores('off');
end;
return; % ToggleDesignScores
%---------------------------------------------------------------------------
function DisplayDesignScores(on_off)
brain_design_state = getappdata(gcf,'PlotBrainDesignState');
switch (on_off)
case {'on'},
if (brain_design_state == 1), % need to display brain/design scores
h = getappdata(gcf,'ScoreAxes');
axes(h); cla; set(h,'Visible','off');
set(getappdata(gcf,'ScoreAxes_top'),'Visible','on');
PlotDesignScores;
set(getappdata(gcf,'ScoreAxes_bottom'),'Visible','on');
PlotBrainDesignScores;
else
h = getappdata(gcf,'ScoreAxes_top');
axes(h); cla; set(h,'Visible','off');
h = getappdata(gcf,'ScoreAxes_bottom');
axes(h); cla; set(h,'Visible','off');
h = getappdata(gcf,'ScoreAxes');
axes(h); cla; set(h,'Visible','on');
PlotDesignScores;
end;
case {'off'},
old_legend = getappdata(gcf,'LegendHdl2');
if ~isempty(old_legend),
try
delete(old_legend{1});
catch
end;
end;
if (brain_design_state == 1), % need to display brain/design scores
h = getappdata(gcf,'ScoreAxes_top');
axes(h); cla; set(h,'Visible','off');
h = getappdata(gcf,'ScoreAxes_bottom');
axes(h); cla; set(h,'Visible','off');
set(getappdata(gcf,'ScoreAxes'),'Visible','on');
PlotBrainDesignScores;
else
h = getappdata(gcf,'ScoreAxes');
axes(h); cla; set(h,'Visible','off');
end;
end; % switch
return; % DisplayDesignScores
%---------------------------------------------------------------------------
function ToggleDesignLV
designlv_state = getappdata(gcf,'PlotDesignLVState');
is_design_plot = getappdata(gcf, 'is_design_plot');
switch (designlv_state)
case {0},
if is_design_plot
m_hdl = findobj(gcf,'Tag','DesignLVMenu');
set(m_hdl,'Label','Hide Design &Latent Variables');
setappdata(gcf,'PlotDesignLVState',1);
DisplayDesignLV('on');
setappdata(gcf,'PlotBrainDesignState',0);
m_hdl = findobj(gcf,'Tag','BrainDesignMenu');
set(m_hdl,'Label','Show &Brain vs Design Scores');
DisplayBrainDesignScores('off');
setappdata(gcf,'PlotDesignState',0);
m_hdl = findobj(gcf,'Tag','DesignMenu');
set(m_hdl,'Label','Show &Design Scores');
DisplayDesignScores('off');
else
m_hdl = findobj(gcf,'Tag','BehavLVMenu');
set(m_hdl,'Label','Hide Behavior &Latent Variables');
setappdata(gcf,'PlotDesignLVState',1);
DisplayDesignLV('on');
setappdata(gcf,'PlotBrainDesignState',0);
m_hdl = findobj(gcf,'Tag','BrainBehavMenu');
set(m_hdl,'Label','Show &Brain vs Behavior Scores');
DisplayBrainDesignScores('off');
setappdata(gcf,'PlotDesignState',0);
m_hdl = findobj(gcf,'Tag','BehavMenu');
set(m_hdl,'Label','Show &Behavior Scores');
DisplayDesignScores('off');
end
% set(findobj(gcf,'Tag','LegendMenu'),'Enable','off');
case {1},
new_state = 0;
if is_design_plot
m_hdl = findobj(gcf,'Tag','DesignLVMenu');
set(m_hdl,'Label','Show Design &Latent Variables');
setappdata(gcf,'PlotDesignLVState',0);
DisplayDesignLV('off');
setappdata(gcf,'PlotBrainDesignState',1);
m_hdl = findobj(gcf,'Tag','BrainDesignMenu');
set(m_hdl,'Label','Hide &Brain vs Design Scores');
DisplayBrainDesignScores('on');
setappdata(gcf,'PlotDesignState',1);
m_hdl = findobj(gcf,'Tag','DesignMenu');
set(m_hdl,'Label','Hide &Design Scores');
DisplayDesignScores('on');
else
m_hdl = findobj(gcf,'Tag','BehavLVMenu');
set(m_hdl,'Label','Show Behavior &Latent Variables');
setappdata(gcf,'PlotDesignLVState',0);
DisplayDesignLV('off');
setappdata(gcf,'PlotBrainDesignState',1);
m_hdl = findobj(gcf,'Tag','BrainBehavMenu');
set(m_hdl,'Label','Hide &Brain vs Behavior Scores');
DisplayBrainDesignScores('on');
setappdata(gcf,'PlotDesignState',1);
m_hdl = findobj(gcf,'Tag','BehavMenu');
set(m_hdl,'Label','Hide &Behavior Scores');
DisplayDesignScores('on');
end
end;
return; % ToggleDesignLV
%---------------------------------------------------------------------------
function DisplayDesignLV(on_off)
design_state = getappdata(gcf,'PlotDesignState');
brain_design_state = getappdata(gcf,'PlotBrainDesignState');
switch (on_off)
case {'on'},
if (design_state == 1)
ToggleDesignScores;
end;
if (brain_design_state == 1)
ToggleBrainDesignScores;
end;
h = getappdata(gcf,'ScoreAxes');
axes(h); cla; set(h,'Visible','off');
h = getappdata(gcf,'ScoreAxes_top');
axes(h); cla; set(h,'Visible','on');
h = getappdata(gcf,'ScoreAxes_bottom');
axes(h); cla; set(h,'Visible','on');
PlotDesignLV;
case {'off'},
old_legend = getappdata(gcf,'LegendHdl3');
if ~isempty(old_legend),
try
delete(old_legend{1});
catch
end;
end;
h = getappdata(gcf,'ScoreAxes');
axes(h); cla; set(h,'Visible','off');
h = getappdata(gcf,'ScoreAxes_top');
axes(h); cla; set(h,'Visible','off');
% PlotDesignScores;
h = getappdata(gcf,'ScoreAxes_bottom');
axes(h); cla; set(h,'Visible','off');
% PlotBrainDesignScores;
end; % switch
return; % DesignLV
%---------------------------------------------------------------------------
function [brainscores,designscores,designlv,s,perm_result,conditions, ...
num_conds,num_subjs_grp1,fname]...
= load_pls_scores(fname, is_design_plot)
b_scores = [];
d_scores = [];
designlv = [];
conditions = [];
s = [];
perm_result = [];
num_conds = [];
if ~exist('fname','var') | isempty(fname),
f_pattern = 'PLSresult*.mat';
[PLSresultFile,PLSresultFilePath] = uigetfile(f_pattern,'Load PLS scores');
if isequal(PLSresultFile,0),
return;
end;
fname = [PLSresultFilePath,PLSresultFile];
end;
try
if(is_design_plot)
load( fname,'brainscores','designscores','designlv', ...
'subj_name','num_behav_subj', ...
's','perm_result','SessionProfiles' );
else
load( fname,'brainscores','behavscores','behavlv', ...
'subj_name','num_behav_subj', ...
's','perm_result','SessionProfiles' );
designscores = behavscores;
designlv = behavlv;
end
catch
msg = sprintf('Cannot load the PLS result from file: %s',PLSresultFile);
disp(['ERROR: ' msg]);
return;
end;
% evt_list = lv_evt_list;
load(SessionProfiles{1}{1}, 'session_info'); % load cond info
conditions = session_info.condition;
num_conds = session_info.num_conditions;
num_subjs_grp1 = num_behav_subj;
return; % load_pls_scores
%---------------------------------------------------------------------------
function delete_fig(),
link_info = getappdata(gcbf,'LinkFigureInfo');
try
rmappdata(link_info.hdl,link_info.name);
end;
try
load('pls_profile');
pls_profile = which('pls_profile.mat');
bfm_plot_scores_pos = get(gcbf,'position');
save(pls_profile, '-append', 'bfm_plot_scores_pos');
catch
end
return; % delete_fig
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -