Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-12-27, 15:34   #1
xs24
初级会员
 
注册日期: 2008-11-22
年龄: 42
帖子: 3
声望力: 0
xs24 正向着好的方向发展
默认 [求助]主成分分析

%--myfun()
clear;clc
X=[16.68 27.75 31.84 18.4 53 55 29 175;
19.7 27.75 32.94 19.2 59 55 33 287;
15.2 23.4 32.98 16.24 46 65 42 153;
7.25 8.97 21.3 4.76 34 62 39 163;
29.45 56.49 40.74 43.68 75 69 27 214;
32.93 42.78 49.98 33.87 66 50 33 260;
25.39 37.85 36.76 27.56 68 63 36 243;
15.05 19.49 27.21 14.21 56 76 36 175;
19.82 28.78 33.41 20.17 59 71 39 183;
21.13 35.2 39.16 26.52 52 62 35 173;
16.75 28.72 29.62 19.23 55 58 30 152;
15.83 28.03 26.4 17.43 61 61 33 160];
%由于原始数据单位不一致,需要进行标准化处理
STX=std(X);
MX=mean(X);
[n,m]=size(X);
for ii=1:1:m
SX(:,ii)=(X(:,ii)-MX(ii))./STX(ii);
end
[PC,SCORE,LATENT]=princomp(SX);
[num2str(m),'个综合因子PC(按列放置)’]
PC
[num2str(n),'个样本的Z得分(按行放置)’]
SCORE
[num2str(m),'个综合因子的特征值(按列放置)’]
LATENT'
[num2str(m),'个综合因子的方差占总方差百分比%(按列放置)’]
explained=100*LATENT'/sum(LATENT')
%----将n个样本的分类进行图形表达
figure(1);plot3(SCORE(:,1),SCORE(:,2),SCORE(:,3),'*');grid on;
xlabel('第一主成分’);ylabel('第二主成分’);zlabel('第三主成分’);title('三维样本分类图);
for ii=1:1:n;text(SCORE(:,1),SCORE(:,2),SCORE(:,3),['工厂’,num2str(ii)]);end
figure(2);plot(SCORE(:,1),SCORE(:,2),'*');grid on;
xlabel('第一主成分’);ylabel('第二主成分’);title('二维样本分类图’);
for ii=1:1:n;text(SCORE(:,1),SCORE(:,2),['工厂’,num2str(ii)]);end
运行不了,请问高手们,怎么改?谢谢:sweat:
xs24 当前离线   回复时引用此帖
旧 2008-12-27, 16:08   #2
xiezhh
普通会员
 
注册日期: 2007-08-07
帖子: 64
声望力: 20
xiezhh 是一个将要出名的人
默认 回复: [求助]主成分分析

标点符号出了问题,不能用中文下的标点符号,修改如下:
clear;clc
X=[16.68 27.75 31.84 18.4 53 55 29 175;
19.7 27.75 32.94 19.2 59 55 33 287;
15.2 23.4 32.98 16.24 46 65 42 153;
7.25 8.97 21.3 4.76 34 62 39 163;
29.45 56.49 40.74 43.68 75 69 27 214;
32.93 42.78 49.98 33.87 66 50 33 260;
25.39 37.85 36.76 27.56 68 63 36 243;
15.05 19.49 27.21 14.21 56 76 36 175;
19.82 28.78 33.41 20.17 59 71 39 183;
21.13 35.2 39.16 26.52 52 62 35 173;
16.75 28.72 29.62 19.23 55 58 30 152;
15.83 28.03 26.4 17.43 61 61 33 160];
%由于原始数据单位不一致,需要进行标准化处理
STX=std(X);
MX=mean(X);
[n,m]=size(X);
for ii=1:1:m
SX(:,ii)=(X(:,ii)-MX(ii))./STX(ii);
end
[PC,SCORE,LATENT]=princomp(SX);
[num2str(m),'个综合因子PC(按列放置)']
PC
[num2str(n),'个样本的Z得分(按行放置)']
SCORE
[num2str(m),'个综合因子的特征值(按列放置)']
LATENT'
[num2str(m),'个综合因子的方差占总方差百分比%(按列放置)']
explained=100*LATENT'/sum(LATENT')
%----将n个样本的分类进行图形表达
figure(1);plot3(SCORE(:,1),SCORE(:,2),SCORE(:,3),'*');grid on;
xlabel('第一主成分');
ylabel('第二主成分');
zlabel('第三主成分');
title('三维样本分类图');
for ii=1:1:n;text(SCORE(:,1),SCORE(:,2),SCORE(:,3),['工厂',num2str(ii)]);end
figure(2);plot(SCORE(:,1),SCORE(:,2),'*');grid on;
xlabel('第一主成分');ylabel('第二主成分');title('二维样本分类图');
for ii=1:1:n;text(SCORE(:,1),SCORE(:,2),['工厂',num2str(ii)]);end
xiezhh 当前离线   回复时引用此帖
旧 2008-12-27, 17:22   #3
xs24
初级会员
 
注册日期: 2008-11-22
年龄: 42
帖子: 3
声望力: 0
xs24 正向着好的方向发展
默认 回复: [求助]主成分分析

不行啊,运行后Error: The input character is not valid in MATLAB statements or
expressions.
xs24 当前离线   回复时引用此帖
旧 2008-12-30, 15:08   #4
mathjiang
高级会员
 
注册日期: 2008-01-02
帖子: 247
声望力: 22
mathjiang 正向着好的方向发展
默认 回复: [求助]主成分分析

楼主,2楼提示的将中文字符改为英文字符后在2008a下可以运行。
mathjiang 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
[求助]颜色直方图(新人报道=.=) comet MATLAB论坛 5 2009-05-02 01:37
[求助]求origin 5.0 安装程序 taobowen Origin论坛 0 2009-01-09 09:24
[求助]如何从.mat文件中取RGB值 mahlzeit MATLAB论坛 0 2008-12-02 17:47
Matlab GUI 可否实现鼠标悬停提示 mtseasky MATLAB论坛 7 2008-08-25 23:50


所有时间均为北京时间。现在的时间是 12:06


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.