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

📄 mfbox_pre_roiselect_run.m

📁 toolbox for spm 5 for data, model free analysis
💻 M
字号:
function [X,mask,grid,timeline,params,private]=mfbox_pre_roiselect_run(X,mask,grid,timeline,params,runflag,private)% select voxels using a brainmaskfile%% Usage:%  [X,mask,grid,timeline,params,private]=mfbox_pre_roiselect_run(X,mask,grid,timeline,params,runflag,private)%%  X        - (NxT) data%             or struct for mfbox_databackend('getdata',X,i),[],1);%  mask     - data mask (XxYxZ) with sum(mask(:))==N%  grid     - 3d positions (3xN) of the data values%  timeline - timeline (1xT)%  params   - struct with%             priority   - evaluation priority%             mask       - explicit mask%             threshold  - threshold%             brainmask  - brainmask%             bmfile     - bmfile%             manualmask - manualmask%  runflag  - -1 get default parameter%              0 interactive ask parameters%              1 interactive ask parameters and run%              2 run%  private  - private data to enable plot updates while selecting (see also mfbox_databackend)%% Copyright by Peter Gruber, Fabian J. Theis, Ingo R. Keck% Signal Processing & Information Theory group% Institute of Biophysics, University of Regensburg, Germany% Homepage: http://research.fabian.theis.name%           http://www-aglang.uni-regensburg.de%% This file is free software, subject to the % GNU GENERAL PUBLIC LICENSE, see gpl.txterror(nargchk(1,7,nargin));error(nargchk(1,6,nargout));if (isstruct(X)), s = [X.dim,X.timesteps];else, s = size(X);enddim = s(1:(end-1));if (length(dim)<2), dim = [1,dim]; endn = s(end);if (nargin<2), mask = true(dim); enddim = size(mask);if (length(dim)==length(s)), n = 1; endif (nargin<3), grid = mfbox_mkgrid(dim)'; endif (nargin<4), timeline = 0:(n-1); endif (nargin<5), params = []; endif (nargin<6), runflag = 1; endif (nargin<7), private = []; endparams = mfbox_checkparam(params,'pre','roiselect', ...    struct('mask',true(dim),'threshold',0.75, ...    'priority',10,'brainmask',1,'bmfile','','manualmask',[]));if (abs(runflag-0.5)<1)    if (exist('OCTAVE_HOME')~=5)% matlab        [params,private] = mfbox_pre_roiselectg(X,mask,grid,timeline,params,runflag,private);    elseif (exist('OCTAVE_HOME')==5) %octave        [params,runflag] = mfbox_getparam(params,runflag,'mfbox_pre_roiselectg.py');    endendif (runflag>0 && isstruct(params))    if (runflag<3)        prgs = mfbox_progress([],'title','ROI','string','Registering brainmask...','progress',[1,4]);    end    nmask = true(dim);    if (isfield(params,'manualmask'))        if (~isempty(params.manualmask)), nmask = nmask & (params.manualmask>0); end    end    try        if (params.brainmask==2)            %if (isfield(handles,'private'))            if (~isempty(private))                [m,private] = mfbox_databackend('getbrainmask',private);                m = reshape(m,dim); % the databackend will give us the mask as row vector            else                m = mfbox_databackend('getbrainmask');                g = 1+(diag((size(m)-1)./(dim-1))*(mfbox_mkgrid(dim)'-1));                g = mat2cell(g,ones(1,size(g,1)),size(g,2));                m = reshape(interpn(m,g{:}),dim);            end            nmask = nmask&(m>params.threshold);        elseif (params.brainmask==3)            if (~isempty(private))                [m,f,private] = mfbox_databackend('import_mask',params.bmfile,private);                 m=reshape(m,dim); % the databackend will give us the mask as row vector            else                m = mfbox_databackend('import_mask',params.bmfile);                g = 1+(diag((size(m)-1)./(dim-1))*(mfbox_mkgrid(dim)'-1));                g = mat2cell(g,ones(1,size(g,1)),size(g,2));                m = reshape(interpn(m,g{:}),dim);            end            nmask = nmask&(m>params.threshold);        end    catch        v = lasterror;        warning(['Something bad happened while roiselect' v.message]);    end    mask = mask & nmask;    if (~isstruct(X))        sgr = size(grid);        sm = size(mask);        g = mat2cell(min(repmat(sm',1,sgr(2)),max(ones(sgr), ...            round(grid))),ones(1,sgr(1)),sgr(2));        nmask = mask(sub2ind(sm,g{:}));        grid = grid(:,nmask);        X = reshape(X,[],n);        X = X(nmask,:);    end    if (runflag<3), mfbox_progress(prgs,'close',[]); endend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -