📄 multiway_scaling.m
字号:
function [Xsca,scal,label_sample] = multiway_scaling(X,settings,model);
% multiway_scaling applies range scaling inbetween 0 and 1 and then unfoldes the data
% If model (optional) is an input, then data are scaled on the basis
% of the scaling parameters of the model (scaling of test samples)
%
% see the HTML HELP files (help.htm) for extensive explanations, details and examples
%
% The toolbox is freeware and may be used (but not modified)
% if proper reference is given to the authors. Preferably refer to:
% D. Ballabio, V. Consonni, R. Todeschini
% Classification of multiway analytical data based on MOLMAP approach
% Analytica Chimica Acta, in press
%
% version 1.0 - november 2007
% Davide Ballabio
% Milano Chemometrics and QSAR Research Group
% www.disat.unimib.it/chm
reverse = 1;
show = -1;
if nargin < 3 % traingin samples
scal.type = 'range_scaling';
max_var = max(max(max(X)));
min_var = min(min(min(X)));
for i=1:size(X,1)
for j=1:size(X,2)
for k=1:size(X,3)
Xsca(i,j,k)=(X(i,j,k) - min_var)/(max_var - min_var);
end
end
end
scal.min_var = min_var;
scal.max_var = max_var;
else % test samples
max_var = model.scal.max_var;
min_var = model.scal.min_var;
for i=1:size(X,1)
for j=1:size(X,2)
for k=1:size(X,3)
Xsca(i,j,k)=(X(i,j,k) - min_var)/(max_var - min_var);
end
end
end
scal = 0;
end
% unfolding on last mode
Xsca = reshape(permute(Xsca,[2 1 3]),[size(X,1)*size(X,2) size(X,3)]);
label_sample = zeros(size(X,1)*size(X,2),1);
count = 0;
for i = 1:size(X,1)
count_start = count +1;
count_end = count + size(X,2);
label_sample(count_start:count_end) = i;
count = count + size(X,2);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -