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

📄 normalize_da_coefficients.m

📁 主成分分析和偏最小二乘SquaresPrincipal成分分析( PCA )和偏最小二乘( PLS )
💻 M
字号:
function da=normalize_da_coefficients(da,coef_name);
% NORMALIZE_DA_COEFFICIENTS normalize discriminant analysis coefficients
% da - discriminant model
% Using: normalize_da_coefficients; - GUI-mode 
% normalize_da_coefficients(da,coef_name); - batch mode
% resulting coefficients are: = <coefficients set>/coef(coef_name)
% example: normalize_da_coefficients(da,'c1');
%
% last modified 7.2.05


str=da.coefficients_txt;
str=[{'c0 (-discr. fun.)'} str];
if nargin<2
	[selection,ok] = listdlg('PromptString','Normalize on:',...
                    'SelectionMode','single','ListString',str);
else
    ok=0;
    for i=1:length(str)
        if strcmp(coef_name,str{i})
            ok=1;
            selection=i;
            break
        end
    end
end
                
if ok
    if selection==1
        for i=1:size(da.coeff_data,2)
            da.coeff_data(:,i)=-da.coeff_data(:,i)./da.discriminant_func;
        end
        da.discriminant_func=ones(size(da.discriminant_func));
    else
        da.discriminant_func=da.discriminant_func./da.coeff_data(:,selection-1);
        for i=1:size(da.coeff_data,2)
            if i~=selection-1
                da.coeff_data(:,i)=da.coeff_data(:,i)./da.coeff_data(:,selection-1);
            end
        end
        da.coeff_data(:,selection-1)=ones(size(da.coeff_data(:,selection-1)));
    end
end

time=da.time;
Coeff_data=da.coeff_data;
Fisher=da.fisher;
Discr_func=da.discriminant_func;

IX=[];
for i=1:length(time)
    if (~all(isfinite(Coeff_data(i,:))))|(~isfinite(Discr_func(i)))
        IX=[IX i];
        fprintf('infinty values removed at time %d\n',time(i));
    end
end

if ~isempty(IX)
    Coeff_data(IX,:)=[];
    Fisher(IX)=[];
    time(IX)=[];
    Discr_func(IX)=[];
end

da.time=time;
da.coeff_data=Coeff_data;
da.fisher=Fisher;
da.discriminant_func=Discr_func;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -