mfbox_kernelica_run.m

来自「toolbox for spm 5 for data, model free a」· M 代码 · 共 73 行

M
73
字号
function [params,A,W,S]=mfbox_kernelica_run(X,mask,params,runflag)% run kernel based ica%% Usage:%  [params,A,W,S]=mfbox_kernelica_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%            kerneltype       - kernel type%                               GeneticGaussPearson%                               GeneticPolyPearson%                               GeneticGaussJade%  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','kernelica', ...    struct('numComponents',10,'numComponents_min',1, ...    'numComponents_max',20,'numComponents_type','int', ...    'maxNumIterations',100,'maxNumIterations_min',10, ...    'maxNumIterations_max',400,'maxNumIterations_type', ...    'int','epsilon',0.0001,'epsilon_min',0.00001, ...    'epsilon_max',0.1,'epsilon_type','float', ...    'kerneltype','GeneticGaussPearson','kerneltype_choices', ...    {{'GeneticGaussPearson','GeneticPolyPearson','GeneticGaussJade'}}, ...    'kerneltype_type','choice'),'experimental');if (abs(runflag-0.5)<1)    if (exist('OCTAVE_HOME')~=5)% matlab        params = mfbox_kernelicag(X,mask,params,runflag);    elseif (exist('OCTAVE_HOME')==5) %octave        [params,runflag] = mfbox_getparam(params,runflag);    endendif (runflag>0 && isstruct(params))    X = reshape(X,[],n);    S = mfbox_kernelica(X', ...        params.numComponents,params.kerneltype);    if (nargout>1), A = X'*S; end    if (nargout>2), W = pinv(A); endend

⌨️ 快捷键说明

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