zscore
- это функция в панели инструментов статистики, которой у меня нет.Документация гласит, что вы можете применить ее для стандартизации матрицы, используя опцию 'all'
( note! Это новинка для MATLAB R2018b):
zscore(X,0,'all'); % won't work in versions of MATLAB before R2018b
Если, как и у меня, у вас нет этого набора инструментов, он должен быть эквивалентен:
(X - mean(X(:))) / std(X(:));
Таким образом, мы можем написать анонимную функцию, например:
standardize = @(X)(X - mean(X(:))) / std(X(:));
или эквивалентно
standardize = @(X)zscore(X,0,'all');
Теперь вы можете применить эту функцию ко всем матрицам в массиве, используя cellfun
:
X = cell(5,3);
for ii=1:numel(X)
X{ii} = rand(1,1000);
end
XV = cellfun(standardize,X,'UniformOutput',false);