⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multiway_scaling.m

📁 MOLMAP multiway toolbox是一个matlab集成工具箱
💻 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 + -