📄 mfbox_databackend.m
字号:
isvalid = false; end if (isvalid) mfbss = v.mfbss; else d = questdlg('Import Anyway ?', ... 'Old Version of save file','Yes','No','Yes'); if (strcmp(d,'Yes')) t = fieldnames(v.mfbss); for i=1:length(t), mfbss.(t{i}) = v.mfbss.(t{i}); end end end clear v; end dat = struct(); if (isfield(mfbss,'bg')), dat = struct('bg',mfbss.bg); end if (isfield(mfbss,'bgmat')), dat.bgmat = mfbss.bgmat; end if (isfield(mfbss,'bmmat')), dat.bmmat = mfbss.bmmat; end if (isfield(mfbss,'bmvolmat')), dat.bmvolmat = mfbss.bmvolmat; end if (isfield(mfbss,'bmvoldim')), dat.bmvoldim = mfbss.bmvoldim; end if (isfield(mfbss,'grid')) if (isempty(mfbss.grid)) s = size(mfbss.X); mfbss.grid = mfbox_mkgrid(s(1:(end-1)))'; end end if (isfield(mfbss,'timeline')) if (isempty(mfbss.timeline)) s = size(mfbss.X); mfbss.timeline = 0:(s(end)-1); end end if (isfield(mfbss,'reliability')) % fix for old bug v = fieldnames(mfbss.reliability); for i=1:length(v) mfbss.reliability.(v{i}) = double(reshape(mfbss.reliability.(v{i}),1,[])); end end varargout{1} = mfbss; if (nargout>1), varargout{2} = f; end if (nargout>2), varargout{3} = dat; end case 'loadcompare' error(nargchk(2,4,nargin)); error(nargchk(1,2,nargout)); handles = varargin{2}; if (nargin>2), f = varargin{3}; else f = ''; end if ((isempty(f))||(nargin<=3)) [f,d] = uigetfile('*.mfc','Select MFBOX file ...',f); f = fullfile(d,f); end if ((size(f,1)~=0)&&(exist(f,'file')>0)) v = load(f,'-mat'); comparehandles = v.comparemfbss; clear v; fields = {'mfbss', 'filename', 'private', 'info', 'spatial_cross_data', ... 'temporal_cross_data', 'components', 'components_masks', 'grouping'}; for i=1:length(fields) if (isfield(comparehandles,fields{i})) handles.(fields{i}) = comparehandles.(fields{i}); end end end varargout{1} = handles; if (nargout>1), varargout{2} = f; end case 'savecompare' error(nargchk(2,4,nargin)); error(nargchk(0,1,nargout)); handles = varargin{2}; if (nargin>2), f = varargin{3}; else f = ''; end if ((isempty(f))||(nargin<=3)) [f,d] = uiputfile('*.mfc','Select COMPARE result file ...',f); f = fullfile(d,f); end comparemfbss = struct(); fields = {'mfbss', 'filename', 'private', 'info', 'spatial_cross_data', ... 'temporal_cross_data', 'components', 'components_masks', 'grouping'}; for i=1:length(fields) if (isfield(handles,fields{i})) comparemfbss.(fields{i}) = handles.(fields{i}); end end if (size(f,1)~=0), save(f,'comparemfbss','-v6'); end if (nargout>0), varargout{1} = f; end case 'save' error(nargchk(2,5,nargin)); error(nargchk(0,1,nargout)); mfbss = varargin{2}; tempvol = varargin{3}; if (nargin>3), f = varargin{4}; else f = ''; end if ((isempty(f))||(nargin<=4)) [f,d] = uiputfile('*.mfb','Select MFBOX result file ...',f); f = fullfile(d,f); end if (isfield(tempvol,'mat')) mfbss.bgmat = tempvol.mat; end if (isfield(tempvol,'brainmask')) %HACK mfbss.bmvolmat = tempvol.brainmaskvol.mat; mfbss.bmvoldim = tempvol.brainmaskdim; mfbss.bmmat = tempvol.brainmaskmat; end if (isfield(mfbss,'X')) if (isstruct(mfbss.X)), mfbss = rmfield(mfbss,'X'); end end if (isfield(mfbss,'extraplot')) extraplot = mfbss.extraplot; mfbss = rmfield(mfbss,'extraplot'); else extraplot = []; end mfbss.version = mfbox_version(); if (size(f,1)~=0), save(f,'mfbss','-v6'); end if (~isempty(extraplot)) mfbss.extraplot = extraplot; end if (nargout>0), varargout{1} = f; end case 'load_params' error(nargchk(1,3,nargin)); error(nargchk(1,2,nargout)); if (nargin>1), f = varargin{2}; else f = ''; end if ((isempty(f))||(nargin<=2)) [f,d] = uigetfile('*.par','Select parameter file ...',f); f = fullfile(d,f); end mfbss = struct(); if (size(f,1)~=0) v = load(f,'-mat'); mfbss = v.mfbss; end varargout{1} = mfbss; if (nargout>1), varargout{2} = f; end case 'save_params' error(nargchk(2,4,nargin)); error(nargchk(0,1,nargout)); mfbss = varargin{2}; %#ok<NASGU> if (nargin>2), f = varargin{3}; else f = ''; end if ((isempty(f))||(nargin<=3)) [f,d] = uiputfile('*.par','Select parameter file ...',f); f = fullfile(d,f); end if (size(f,1)~=0), save(f,'mfbss','-v6'); end if (nargout>0), varargout{1} = f; end case 'import_reference' error(nargchk(2,4,nargin)); error(nargchk(1,3,nargout)); questdlg(sprintf('Not yet implemented\nCannot get reference\n'), ... 'Info','Ok','Ok'); case 'import_bg' error(nargchk(2,4,nargin)); error(nargchk(1,2,nargout)); questdlg(sprintf('Not yet implemented\nCannot get background\n'), ... 'Info','Ok','Ok'); case 'import_design' error(nargchk(2,3,nargin)); error(nargchk(1,2,nargout)); if (nargin>1), f = varargin{2}; else f = ''; end if ((isempty(f))||(nargin<=2)) [f,d] = uigetfile('*.mat','Select design matrix ...',f); f = fullfile(d,f); end design = []; if (size(f,1)~=0) s = load(f); if (isfield(s,'SPM')==1) t = s.SPM.xX.X; design = t(:,any(t~=1)); % only non trivial else t = fieldnames(s); design = s.(t{1}); end end varargout{1} = design; if (nargout>1), varargout{2} = f; end case 'import_timemask' error(nargchk(1,3,nargin)); error(nargchk(1,2,nargout)); if (nargin>1), f = varargin{2}; else f = ''; end if ((isempty(f))||(nargin<=2)) [f,d] = uigetfile('*.mat','Select timemask matrix ...',f); f = fullfile(d,f); end design = []; if (size(f,1)~=0) s = load(f); t = fieldnames(s); timemask = s.(t{1}); end varargout{1} = timemask; if (nargout>1), varargout{2} = f; end case 'init' error(nargchk(2,3,nargin)); error(nargchk(1,1,nargout)); tempvol = varargin{2}; if (nargin>2), dat = varargin{3}; else dat = struct(); end if (isfield(dat,'bg')) tempvol.private = struct('bg',dat.bg,'dim',size(dat.bg)); end varargout{1} = tempvol; case 'import' % fill h.sequence, use (and fill) h.filenames error(nargchk(1,3,nargin)); error(nargchk(1,2,nargout)); questdlg(sprintf('Not yet implemented\nCannot import\n'), ... 'Info','Ok','Ok'); case 'export' % export h.mfbss.X use (and fill) h.filenames error(nargchk(2,3,nargin)); error(nargchk(0,1,nargout)); questdlg(sprintf('Not yet implemented\nCannot export\n'), ... 'Info','Ok','Ok'); case 'export_result' error(nargchk(3,5,nargin)); error(nargchk(0,1,nargout)); questdlg(sprintf('Not yet implemented\nCannot export result\n'), ... 'Info','Ok','Ok'); case 'getdata' error(nargchk(2,3,nargin)); error(nargchk(1,1,nargout)); questdlg(sprintf('Not yet implemented\nCannot get data\n'), ... 'Info','Ok','Ok'); case 'getic' error(nargchk(4,5,nargin)); error(nargchk(1,2,nargout)); questdlg(sprintf('Not yet implemented\nCannot get ic\n'), ... 'Info','Ok','Ok'); case 'getbg' error(nargchk(2,2,nargin)); error(nargchk(1,2,nargout)); questdlg(sprintf('Not yet implemented\nCannot get bg\n'), ... 'Info','Ok','Ok'); case 'getatlas' error(nargchk(2,2,nargin)); error(nargchk(1,2,nargout)); tempvol = varargin{2}; atlas_components = load([fileparts(which('spm_mf_box')) ... filesep 'mfbox_atlas_components.mat']); varargout{1} = {atlas_components.front' ... atlas_components.side' atlas_components.top}; if (nargout>1), varargout{2} = tempvol; end case 'getbrainmask' error(nargchk(1,2,nargin)); error(nargchk(1,2,nargout)); questdlg(sprintf('Not yet implemented\nCannot get mask\n'), ... 'Info','Ok','Ok'); case 'startmaskedit' error(nargchk(3,3,nargin)); error(nargchk(1,1,nargout)); questdlg(sprintf('Not yet implemented\nCannot start mask\n'), ... 'Info','Ok','Ok'); case 'stopmaskedit' error(nargchk(2,2,nargin)); error(nargchk(1,2,nargout)); questdlg(sprintf('Not yet implemented\nCannot stop mask\n'), ... 'Info','Ok','Ok'); case 'redraw_mask' error(nargchk(3,3,nargin)); error(nargchk(0,0,nargout)); questdlg(sprintf('Not yet implemented\nCannot redraw mask\n'), ... 'Info','Ok','Ok'); case 'getposition' error(nargchk(2,2,nargin)); error(nargchk(0,2,nargout)); tempvol = varargin{2}; p = [0,0,0]; if (nargout>0) varargout{1} = tempvol; if (nargout>1), varargout{2} = p; end end case 'redraw' error(nargchk(2,5,nargin)); error(nargchk(0,1,nargout)); tempvol = varargin{2}; vols = varargin{3}; if (nargin>3), blobs = varargin{4}; else blobs = {}; end if (nargin>4), pos = varargin{5}; else pos = []; end if (isfield(tempvol,'private')) if (length(tempvol.private.dim)==3) [m,i] = min(tempvol.private.dim); bg = shiftdim(tempvol.private.bg,1-i); mi = min(bg(:)); ma = max(bg(:)); bg = (bg-mi)/(ma-mi); elseif (length(tempvol.private.dim)==2) elseif (any(tempvol.private.dim==ones(1,length(tempvol.private.dim)))) end end questdlg(sprintf('Not yet implemented\nCannot redraw\n'),'Info','Ok','Ok'); if (nargout>0), varargout{1} = tempvol; endendreturn
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -