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

📄 mfbox_stsobi_run.m

📁 toolbox for spm 5 for data, model free analysis
💻 M
字号:
function [params,A,W,S]=mfbox_stSOBI_run(X,mask,params,runflag)% run spatiotemporal sobi%% Usage:%  [params,A,W,S]=mfbox_stSOBI_run(X,mask,params,runflag)%%  X       - (NxT) data%  mask    - data mask (XxYxZ) with sum(mask(:))==N%  params  - struct with%            numComponents  - number of components%            alpha          - alpha%            orthJD         - orthogonal joint diagonalisation%            numOfAutocov   - number of autocovariances%            radiusStepSize - radius step size%            onedSOBI       - onedimensional sobi%            symmetric      - symmetric approach%  runflag - -1 get default parameter%             0 interactive ask parameters%             1 interactive ask parameters and run%             2 run%% 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,4,nargin));error(nargchk(1,4,nargout));A = [];W = [];S = [];s = size(X);dim = s(1:(end-1));if (length(dim)==1), dim = [dim,1]; endn = s(end);if (nargin<2), mask = logical(ones(dim)); endif (nargin<3), params = []; endif (nargin<4), runflag = 1; endparams = mfbox_checkparam(params,'mf','stsobi', ...    struct('numComponents',10,'numComponents_min',1, ...    'numComponents_max',20,'numComponents_type','int', ...    'alpha',0.5,'alpha_min',0,'alpha_max',1,'alpha_type', ...    'float','orthJD','on','numOfAutocov',10,'numOfAutocov_min', ...    2,'numOfAutocov_max',20,'numOfAutocov_type','int',...    'radiusStepSize',2,'radiusStepSize_min',2,'radiusStepSize_max', ...    10,'radiusStepSize_type','int','onedSOBI','off', ...    'onedSOBI_type','boolean','symmetric', ...    'on', 'symmetric_type','boolean'));if (abs(runflag-0.5)<1)    if (exist('OCTAVE_HOME')~=5)% matlab        params = mfbox_stSOBIg(X,mask,params,runflag);    elseif (exist('OCTAVE_HOME')==5) %octave        [params,runflag] = mfbox_getparam(params,runflag);    endendif (runflag>0 && isstruct(params))    rmask = false(size(mask));    ndim = zeros(1,ndims(mask));    for i=1:length(ndim)        t = mask;        for j=1:length(ndim), if (j~=i), t = max(t,[],j); end; end        ref{i} = t(:)>0;        ndim(i) = sum(ref{i});    end    subsasgn(rmask,struct('type','()','subs',{ref}),true);    mask = reshape(mask(rmask),ndim);        [S,A] = mfbox_stSOBI(X,'lastEig',params.numComponents, ...        'alpha',params.alpha,'numOfAutocov',params.numOfAutocov, ...        'radiusStepSize',params.radiusStepSize, ...        'mask',mask,'onedSOBI',params.onedSOBI,'symmetric', ...        params.symmetric,'verbose','off');    S = reshape(S,size(A,1),[])';    if (nargout>1), A = A'; end    if (nargout>2), W = pinv(A); end    if (nargout>3), S = S(mask,:); endend

⌨️ 快捷键说明

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