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

📄 mfbox_temporalica_run.m

📁 toolbox for spm 5 for data, model free analysis
💻 M
字号:
function [params,A,W,S]=mfbox_temporalica_run(X,mask,params,runflag)% run temporal ica based on pearson ica%% Usage:%  [params,A,W,S]=mfbox_temporalica_run(X,mask,params,runflag)%%  X       - (NxT) data%  mask    - data mask (XxYxZ) with sum(mask(:))==N%  params  - struct with%            numComponents        - number of components%            maxNumIterations     - max number of iterations%            epsilon              - epsilon%            maxNumPastIterations - max number of past iterations%            beta                 - beta in pearson%            borderBase           - borderBase in pearsonica%            borderSlope          - borderSlope in pearsonica%            usepast              - use past for dimesion reduction%  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','temporalica', ...    struct('numComponents',10,'numComponents_min',1, ...    'numComponents_max',20,'numComponents_type','int', ...    'maxNumIterations',300,'maxNumIterations_min',100, ...    'maxNumIterations_max',1000,'maxNumIterations_type', ...    'int','epsilon',0.0001,'epsilon_min',0.00001, ...    'epsilon_max',0.1,'epsilon_type','float', ...    'maxNumPastIterations',1000,'maxNumPastIterations_min', ...    100,'maxNumPastIterations_max',5000,'maxNumPastIterations_type', ...    'float','beta','0.5','beta_min',0.1,'beta_max',0.9, ...    'beta_type','float','borderBase',1,'borderSlope',1, ...    'usepast','off','usepast_type','boolean'));if (abs(runflag-0.5)<1)    if (exist('OCTAVE_HOME')~=5)% matlab        params = mfbox_temporalicag(X,mask,params,runflag);    elseif (exist('OCTAVE_HOME')==5) %octave        [params,runflag] = mfbox_getparam(params,runflag);    endendif (runflag>0 && isstruct(params))    borderBase = [2.6 4];    borderSlope = [0 1];    n = params.numComponents;    plotting = 'on'; if (runflag>2), plotting = 'off'; end    if (strcmp(plotting,'on')), f = figure; end    if (strcmp(params.usepast,'on'))        WP = mfbox_past(X,n,params.beta,params.maxNumPastIterations,strcmp(plotting,'on'));    else        [x,y] = eig(double(cov(X)));        [y,p] = sort(diag(y),'descend');        WP = x(:,p(1:n))'*X';    end    [A,tS] = mfbox_fasticapearson((WP*X)', ...        params.epsilon,params.maxNumIterations, ...        borderBase,borderSlope,n,1,n,plotting);    if (strcmp(plotting,'on')), close(f); end    if (nargout>2), W = pinv(A); end    if (nargout>3), S = WP'*tS; endend

⌨️ 快捷键说明

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