資源簡介
Fisher判別分析的matlab程序
代碼片段和文件信息
%FDA算法
clearclc
%?load?CSTR_Train50x10
%?load?CSTR_Train1
f0=xlsread(‘f0.xlsx‘);f1=xlsread(‘f1.xlsx‘);f2=xlsread(‘f2.xlsx‘);
mvf0=mean(f0);
sdf0=std(f0);
f=‘f0f1f2‘;
p=(1/2)*size(f2);
m=size(f02);???????????????????????????%變量維數
%---------數據標準化-----------
n=zeros(1m);
for?i=1:p
????eval([‘a=‘f(2*i-1:2*i)‘;‘]);??????%方括號表示字符串的合并
????n(i)=size(a1);?????????????????????%求第i類樣本數
????fs=zeros(n(i)m);
????for?j=1:n(i)
????????fs(j:)=(a(j:)-mvf0)./sdf0;????%按正常數據的均值和標準差進行標準化
????end
???eval([f(2*i-1:2*i)‘=fs;‘]);?????????%f0~f6均為標準化后的矩陣
end
%------------求內部離散度和類內離散度---------------
mvf=zeros(pm);
Sw=zeros(mm);??????????????????????????%類內離散度
for?i=1:p
????eval([‘a=‘f(2*i-1:2*i)‘;‘]);
????mvf(i:)=mean(a);???????????????????%類i的均值向量
????Sj=zeros(mm);
評論
共有 條評論