Matlab 版 (精华区)
发信人: zjliu (秋天的萝卜), 信区: Matlab
标 题: 矩阵X的标准化程序
发信站: BBS 哈工大紫丁香站 (Fri Mar 25 15:41:54 2005)
发信站: 日月光华
%%注意换行
%标准化数据处理的程序
clear all
close all
clc
[file1,path1]=uigetfile('*.*','打开数据文件');
filename1=strcat(path1,file1);
fid1=fopen(filename1,'r');
prompt={'行数即样本总数','列数即因子数'};
def={' ',' '};
lineNo=1;
dlgTitle='请输入参数,标准化数据的程序,吴建生';
answer=inputdlg(prompt,dlgTitle,lineNo,def);
answer=char(answer);
ny=str2num(answer(1,:));
nx=str2num(answer(2,:));
[file2,path2]=uiputfile('*.*','请选择要保存结果的文件夹');
filename2=strcat(path2,file2);
fid2=fopen(filename2,'w');
A1=fscanf(fid1,'%f');
B1=reshape(A1,nx,ny)';
fprintf(fid2,'###############******原始数据未经处理******################\n')
;
for i=1:ny
for j=1:nx
fprintf(fid2,'%10.5f',B1(i,j));
end
fprintf(fid2,'\n');
end
fclose(fid1);
C1=(B1-repmat(mean(B1),ny,1))./repmat(std(B1),ny,1);
f1=max(B1)-min(B1);
C2=(B1-repmat(min(B1),ny,1))./repmat(f1,ny,1);
%用命令标准化过程
CC1=prestd(B1');
CC1=CC1';
CC2=premnmx(B1');
CC2=CC2';
fprintf(fid2,'###############*****均值方差标准的结果*******################
\n');
for i=1:ny
for j=1:nx
fprintf(fid2,'%10.5f',C1(i,j));
end
fprintf(fid2,'\n');
end
fprintf(fid2,'###############*****极大极小化标准的结果*******################
\n');
for i=1:ny
for j=1:nx
fprintf(fid2,'%10.5f',C2(i,j));
end
fprintf(fid2,'\n');
end
fprintf(fid2,'###############*****prestd标准的结果*******################\n')
;
for i=1:ny
for j=1:nx
fprintf(fid2,'%10.5f',CC1(i,j));
end
fprintf(fid2,'\n');
end
fprintf(fid2,'###############*****premnmx标准的结果*******################\n'
);
for i=1:ny
for j=1:nx
fprintf(fid2,'%10.5f',CC2(i,j));
end
fprintf(fid2,'\n');
end
fclose(fid2);
注:C1和CC1的结果相同
C2和CC2的结果不同
C2是标准化[0, 1]区间到而CC2是标准化[-1, 1]的区间到.
--
╔═══════════════════╗
║★★★★★友谊第一 比赛第二★★★★★║
╚═══════════════════╝
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 天外飞仙]
※ 来源:·哈工大紫丁香 http://bbs.hit.edu.cn·[FROM: 202.118.229.*]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.498毫秒