www.gusucode.com > Matlab动力系统和时间序列分析工具箱 > Matlab动力系统和时间序列分析工具箱/lab432/toolbox/da/normalize_da_coefficients.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;