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

📄 mfbox_pre_remmean_run.m

📁 toolbox for spm 5 for data, model free analysis
💻 M
字号:
function [X,mask,grid,timeline,params,private]=mfbox_pre_remmean_run(X,mask,grid,timeline,params,runflag,private)% remove means%% Usage:%  [X,mask,grid,timeline,params,private]=mfbox_pre_remmean_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%             meanm    - temporal, spatial mean removal%                        spatial, temporal mean removal%                        spatial bg rescale, temporal mean removal%                        spatial mean removal%                        temporal mean remova%  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 and Fabian J. Theis% 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) | isempty(grid) , grid = mfbox_mkgrid(dim)'; endif (nargin<4), timeline = 0:(n-1); endif (nargin<5), params = []; endif (nargin<6), runflag = 1; endif (nargin<7), private = []; endmeanms = { 'temporal, spatial mean removal' ...    'spatial bg rescale, temporal mean removal' ...    'spatial mean removal' ...    'temporal mean removal'};params = mfbox_checkparam(params,'pre','remmean', ...    struct('meanm',meanms{1},'priority',60));if (abs(runflag-0.5)<1)    if (exist('OCTAVE_HOME')~=5)% matlab        [params,private] = mfbox_pre_remmeang(X,mask,grid,timeline,params,runflag,private);    elseif (exist('OCTAVE_HOME')==5) %octave        [params,runflag] = mfbox_getparam(params,runflag,'mfbox_pre_remmeang.py');    endendif (runflag>0 && isstruct(params))    if (isstruct(X))        oX = X;        X = zeros(sum(mask(:)),n,'single');        for i=1:n            v = single(reshape(mfbox_databackend('getdata',oX,i),[],1));            X(:,i) = v(mask);        end        grid = grid(:,mask);    else        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{:}));         X = reshape(X,[],n);        if (any(nmask==0))            X = X(nmask,:);            grid = grid(:,nmask);        end    end    switch params.meanm        case 'temporal, spatial mean removal'            Xm = mean(X,2);            for i=1:size(X,1), X(i,:) = X(i,:)-Xm(i); end            Xm = mean(X,1);            for i=1:size(X,2), X(:,i) = X(:,i)-Xm(i); end        case 'spatial, temporal mean removal'            Xm = mean(X,1);            for i=1:size(X,2), X(:,i) = X(:,i)-Xm(i); end            Xm = mean(X,2);            for i=1:size(X,1), X(i,:) = X(i,:)-Xm(i); end        case 'spatial bg rescale, temporal mean removal'            v = mean(X,2);            v(v.^2>eps) = 1./v(v.^2>eps);            for i=1:size(X,1)                X(i,:) = X(i,:)*v(i);            end            X = X.*repmat(v,1,n);            Xm = mean(X,1);            for i=1:size(X,2), X(:,i) = X(:,i)-Xm(i); end            Xm = mean(X,2);            for i=1:size(X,1), X(i,:) = X(i,:)-Xm(i); end        case 'spatial mean removal'            Xm = mean(X,1);            for i=1:size(X,2), X(:,i) = X(:,i)-Xm(i); end        case 'temporal mean removal'            Xm = mean(X,2);            for i=1:size(X,1), X(i,:) = X(i,:)-Xm(i); end    endend

⌨️ 快捷键说明

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