0001 function [X,opt]=preproc_scalecenter(X,opt) 0002 0003 if iscell(X) 0004 if size(X,1)<size(X,2) 0005 X=X'; 0006 end 0007 0008 L=zeros(size(X)); 0009 for ii=1:length(X) 0010 L(ii)=size(X{ii},1); 0011 end 0012 0013 X=cell2mat(X); 0014 else 0015 L=size(X,1); 0016 end 0017 0018 if ~exist('opt','var') || ~isfield(opt,'mm') || ~isfield(opt,'ss') 0019 opt.mm=mean(X); 0020 opt.ss=std(X); 0021 end 0022 0023 X=(X-ones(sum(L),1)*opt.mm)/diag(opt.ss); 0024 0025 X=mat2cell(X,L,size(X,2));