⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mfbox_databackend.m

📁 toolbox for spm 5 for data, model free analysis
💻 M
📖 第 1 页 / 共 3 页
字号:
                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 + -