📄 mfbox_mdsobi_run.m
字号:
function [params,A,W,S]=mfbox_mdsobi_run(X,mask,params,runflag)% run multidimensional sobi%% Usage:% [params,A,W,S]=mfbox_mdsobi_run(X,mask,params,runflag)%% X - (NxT) data% mask - data mask (XxYxZ) with sum(mask(:))==N% params - struct with% numComponents - number of components% numOfAutocov - number of autocovariances% radiusStepSize - radius step% onedSOBI - one dimensional sobi% 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','mdsobi', ... struct('numComponents',10,'numComponents_min',1, ... 'numComponents_max',20,'numComponents_type','int', ... 'numOfAutocov',10,'numOfAutocov_min',1, ... 'numOfAutocov_max',20,'numOfAutocov_type','int', ... 'radiusStepSize',2,'radiusStepSize_min',1, ... 'radiusStepSize_max',10,'radiusStepSize_type','int', ... 'onedSOBI','off','onedSOBI_type','boolean'));if (abs(runflag-0.5)<1) if (exist('OCTAVE_HOME')~=5)% matlab params = mfbox_mdsobig(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,W] = mfbox_mdsobi(X,'lastEig',params.numComponents, ... 'numOfAutocov',params.numOfAutocov, ... 'radiusStepSize',params.radiusStepSize, ... 'mask',mask,'onedSOBI',params.onedSOBI,'verbose','off'); S = reshape(S,[],size(A,2)); if (nargout>3), S = S(mask,:); endend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -