📄 struct_session_profile_ui.m
字号:
set(h,'TooltipString',pls_data_dir);
setappdata(gcf,'SessionPLSDir',pls_data_dir);
cd(pls_data_dir);
end;
return; % SelectPLSDataDir
%----------------------------------------------------------------------------
function EditDatasetDir
dataset_dir = deblank(strjust(get(gcbo,'String'),'left'));
emptydir = 0;
if isempty(dataset_dir)
emptydir = 1;
end;
set(gcbo,'String',dataset_dir);
%
if (~emptydir)
if ( exist(dataset_dir,'dir') == 7 ) % specified directory exists
setappdata(gcf,'SessionDatasetDir',dataset_dir);
return;
end;
if ( exist(dataset_dir,'file') == 2 ) % it is a file!
msg = 'ERROR: The specified direcotry is a file!';
set(findobj(gcf,'Tag','MessageLine'),'String',msg);
setappdata(gcf,'SessionDatasetDir','');
return;
end;
end;
msg = 'ERROR: Invalid input direcotry!';
set(findobj(gcf,'Tag','MessageLine'),'String',msg);
return; % EditDatasetDir
%----------------------------------------------------------------------------
function SelectDatasetDir
h = findobj(gcf,'Tag','DatasetDirectoryEdit');
dataset_dir = rri_getdirectory({get(h,'String')});
if ~isempty(dataset_dir),
set(h,'String',dataset_dir);
set(h,'TooltipString',dataset_dir);
setappdata(gcf,'SessionDatasetDir',dataset_dir);
end;
return; % SelectDatasetDir
%----------------------------------------------------------------------------
function EditBehavDataFile
behav_data_file = deblank(strjust(get(gcbo,'String'),'left'));
set(gcbo,'String',behav_data_file);
if ~isempty(behav_data_file)
if ( exist(behav_data_file,'file') == 2 ) % specified file exists
setappdata(gcf,'SessionBehavDataFile',behav_data_file);
return;
elseif ( exist(behav_data_file,'dir') == 7 ) % it is a directory!
msg = 'ERROR: The specified behav file is a direcotry!';
set(findobj(gcf,'Tag','MessageLine'),'String',msg);
setappdata(gcf,'SessionBehavDataFile','');
return;
else
msg = 'ERROR: The specified behav file does not exist!';
uiwait(msgbox(msg,'Error','modal'));
return;
end;
else
% msg = 'ERROR: Invalid input file!';
% set(findobj(gcf,'Tag','MessageLine'),'String',msg);
setappdata(gcf,'SessionBehavDataFile','');
return;
end;
return; % EditBehavDataFile
%----------------------------------------------------------------------------
function SelectBehavDataFile
h = findobj(gcf,'Tag','BehavDataFileEdit');
[filename,pathname]=uigetfile('*.*','Select Behavior Data File');
if isequal(filename,0) | isequal(pathname,0)
return;
end;
behav_data_file = [pathname, filename];
set(h,'String',behav_data_file);
set(h,'TooltipString',behav_data_file);
setappdata(gcf,'SessionBehavDataFile',behav_data_file);
return; % SelectBehavDataFile
%----------------------------------------------------------------------------
function EditConditions()
condition = getappdata(gcf,'SessionConditions');
old_cond_filter = getappdata(gcf,'cond_filter');
old_subj_files = getappdata(gcf,'subj_files');
% Input conditions
%
[new_condition, cond_filter, subj_files, reselect_subj] = ...
struct_input_condition_ui(condition, old_cond_filter, old_subj_files);
num_conds = num2str(length(new_condition));
set(findobj(gcf,'Tag','NumberConditionsEdit'),'String',num_conds);
setappdata(gcf,'SessionNumConditions',length(new_condition));
setappdata(gcf,'SessionConditions',new_condition);
setappdata(gcf,'cond_filter', cond_filter);
setappdata(gcf,'subj_files', subj_files);
setappdata(gcf,'reselect_subj', reselect_subj);
[p f e] = fileparts(cond_filter{1});
setappdata(gcf,'img_ext', ['*' e]);
return; % EditConditions
%----------------------------------------------------------------------------
function EditSubjects()
num_subj_init = getappdata(gcf,'num_subj_init');
num_subjects = getappdata(gcf,'SessionNumSubjects');
old_subj_name = getappdata(gcf,'subj_name');
old_subjects = getappdata(gcf,'SessionSubject');
old_subj_files = getappdata(gcf,'subj_files');
img_ext = getappdata(gcf,'img_ext');
condition = getappdata(gcf,'SessionConditions');
selected_conditions = ones(1,length(condition));
cond_filter = getappdata(gcf,'cond_filter');
dataset_dir = getappdata(gcf,'SessionDatasetDir');
% edit the names of subjects
%
[subj_name, subjects, subj_files, num_subj_init, img_ext] = ...
struct_input_subject_ui(old_subj_name, old_subjects, old_subj_files, ...
condition, selected_conditions, num_subj_init, img_ext, ...
cond_filter, dataset_dir);
num_subjs = num2str(length(subjects));
set(findobj(gcf,'Tag','NumberSubjectsEdit'),'String',num_subjs);
% use subject file name as subject name
%
% subj_name = [];
% for i=1:length(subjects)
% [fpath fname] = fileparts(subjects{i});
% subj_name{i} = fname;
%end
setappdata(gcf,'num_subj_init',num_subj_init);
setappdata(gcf,'SessionNumSubjects',length(subjects));
setappdata(gcf,'subj_name', subj_name);
setappdata(gcf,'SessionSubject',subjects);
setappdata(gcf,'subj_files', subj_files);
setappdata(gcf,'img_ext', img_ext);
setappdata(gcf,'reselect_subj', 0);
return; % EditSubjects
%----------------------------------------------------------------------------
function status = ChkModified()
% Output:
% status = 0, error
% status = 1, ok
status = 1;
[session_info,session_file,old_session_info] = GetSessionInfo;
if (isequal(session_info,old_session_info) == 0),
dlg_title = 'Session Information has been changed';
msg = 'WARNING: The session information has been changed. Do you want to save it?';
response = questdlg(msg,dlg_title,'Yes','No','Cancel','Yes');
switch response,
case 'Yes'
status = SaveSessionInfo;
case 'Cancel'
status = 0;
case 'No'
status = 2;
end;
end;
return; % ChkModified
%----------------------------------------------------------------------------
%
% set session field. called by load session & clear session
%
%----------------------------------------------------------------------------
function SetSessionInfo(session_info,session_file)
setappdata(gcf,'SessionDescription',session_info.description);
setappdata(gcf,'SessionPLSDir',session_info.pls_data_path);
setappdata(gcf,'SessionDatasetDir',session_info.dataset_path);
% setappdata(gcf,'SessionBehavDataFile',session_info.behav_data_file);
if ~isfield(session_info,'behavdata')
session_info.num_behavior = 0;
end
setappdata(gcf,'SessionNumBehavior',session_info.num_behavior);
if ~isfield(session_info,'behavdata')
session_info.behavdata = [];
end
setappdata(gcf,'SessionBehavData',session_info.behavdata);
if ~isfield(session_info,'behavname')
session_info.behavname = {};
end
setappdata(gcf,'SessionBehavName',session_info.behavname);
setappdata(gcf,'SessionDatamatPrefix',session_info.datamat_prefix);
setappdata(gcf,'SessionNumConditions',session_info.num_conditions);
setappdata(gcf,'SessionConditions',session_info.condition);
setappdata(gcf,'SessionNumSubjects',session_info.num_subjects);
setappdata(gcf,'SessionSubject',session_info.subject);
setappdata(gcf,'subj_name',session_info.subj_name);
setappdata(gcf,'cond_filter',session_info.cond_filter);
setappdata(gcf,'subj_files',session_info.subj_files);
if ~isfield(session_info,'img_ext')
if isempty(session_file)
session_info.img_ext = '*.img';
else
[p f e] = fileparts(session_info.subj_files{1});
session_info.img_ext = ['*' e];
end
end
setappdata(gcf,'img_ext',session_info.img_ext);
if ~isfield(session_info,'num_subj_init')
session_info.num_subj_init = -1;
end
setappdata(gcf,'num_subj_init',session_info.num_subj_init);
setappdata(gcf,'OldSessionInfo',session_info);
setappdata(gcf,'SessionFile',session_file);
if isempty(session_file)
set(gcf,'Name','New STRUCT Session Information');
else
set(gcf,'Name',['Session File: ' session_file]);
end;
return; % SetSessionInfo
%----------------------------------------------------------------------------
%
% get session field. called by saveSession, checkModify, & createDatamat
%
%----------------------------------------------------------------------------
function [session_info,session_file,old_session_info] = GetSessionInfo(),
session_info.description = getappdata(gcf,'SessionDescription');
session_info.pls_data_path = getappdata(gcf,'SessionPLSDir');
session_info.dataset_path = getappdata(gcf,'SessionDatasetDir');
% session_info.behav_data_file = getappdata(gcf,'SessionBehavDataFile');
session_info.num_behavior = getappdata(gcf,'SessionNumBehavior');
session_info.behavdata = getappdata(gcf,'SessionBehavData');
session_info.behavname = getappdata(gcf,'SessionBehavName');
session_info.datamat_prefix = getappdata(gcf,'SessionDatamatPrefix');
session_info.num_conditions = getappdata(gcf,'SessionNumConditions');
session_info.condition = getappdata(gcf,'SessionConditions');
session_info.num_subjects = getappdata(gcf,'SessionNumSubjects');
session_info.subject = getappdata(gcf,'SessionSubject');
session_info.subj_name = getappdata(gcf,'subj_name');
session_info.cond_filter = getappdata(gcf,'cond_filter');
session_info.subj_files = getappdata(gcf,'subj_files');
session_info.img_ext = getappdata(gcf,'img_ext');
session_info.num_subj_init = getappdata(gcf,'num_subj_init');
session_file = getappdata(gcf,'SessionFile');
old_session_info = getappdata(gcf,'OldSessionInfo');
return; % GetSessionInfo
%----------------------------------------------------------------------------
function CreateDatamat(),
% make sure the session information has been saved
%
[session_info,session_file,old_session_info] = GetSessionInfo;
if isempty(session_file) | isequal(session_info,old_session_info) == 0
status = ChkModified;
session_file = getappdata(gcf,'SessionFile');
if isempty(session_file)
% status = 2;
return;
end
if (status == 0)
return;
elseif (status == 2)
msg = 'ERROR: Save the session information before creating datamat.';
set(findobj(gcf,'Tag','MessageLine'),'String',msg);
return;
end
end;
struct_create_datamat({session_file});
return; % CreateDatamat
%----------------------------------------------------------------------------
function ModifyDatamat()
[datamat_file, datamat_path] = ...
uigetfile('*_STRUCTdatamat.mat', 'Open STRUCT Datamat');
if (datamat_path == 0), return; end;
datamat_file = fullfile(datamat_path, datamat_file);
calling_fig = getappdata(gcf,'CallingFigure');
this_fig = gcf;
load(datamat_file, 'selected_subjects');
modifier.selected_subjects = selected_subjects;
h0 = gcf;
h01 = struct_modify_datamat(modifier, datamat_file);
if ~isempty(h01)
setappdata(h0,'modify_fig',h01);
end
% close(calling_fig);
% close(this_fig);
return; % ModifyDatamat
%----------------------------------------------------------------------------
function PathSessionInfo(init_flag)
% init_flag = 0 for clear operation
% init_flag = 1 for initialization
%
if (init_flag == 0 & ChkModified == 0)
return; % error
end;
old_session_info = getappdata(gcf,'OldSessionInfo');
session_info = old_session_info;
session_info = rri_changepath_se(session_info);
if isempty(session_info)
session_info = old_session_info;
end
setappdata(gcf,'SessionPLSDir',session_info.pls_data_path);
setappdata(gcf,'SessionDatasetDir',session_info.dataset_path);
return; % PathSessionInfo
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -