声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2108|回复: 2

[编程技巧] 求助 schmidt正交化

[复制链接]
发表于 2007-5-22 22:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
怎么样用schmidt正交化,来使下面的 L正交化,谢谢各位了

代码:
load orl_faces  %加载orl数据库faces
a=faces; %644*400

%取出所有训练图像y 是644*200
y=[];
for i=1:40
    for j=1:5    %相当于 for(i=0;i<mm;i++)
        y=[y a(:,(i-1)*10+j)];  
    end
end


a2=y'; %转置
yy=mean(a2); %求均值,yy:1*644
x=[];
zz=[];
L=[];
for i=1:39
for j=1:5    %相当于 for(i=0;i<5;i++)
  x=[x a(:,(i-1)*10+j)];  
end
a1=x'; %转置
xx=mean(a1);
zz=xx-yy;
L=[L;zz];
end


L是39*644的,我用orth指令正交结果变成了39*39的,我希望得到的L仍然是39*644的,谢谢大家了
回复
分享到:

使用道具 举报

 楼主| 发表于 2007-5-23 08:44 | 显示全部楼层

已解决,谢谢大家的关心

用schmidt正交化
for i=1:n
    for j=1:i-1
        W(:,i)=W(:,i)-(W(:,i)'*W(:,j))*W(:,j);
    end
    W(:,i)=W(:,i)/norm(W(:,i));
end

内循环采用向量运算的形式的schimit正交化方法
V(:,1)=V(:,1)/norm(V(:,1));
for i=2:n
    V(:,i)=V(:,i)-V(:,1:i-1)*(V(:,1:i-1)'*V(:,i));
    V(:,i)=V(:,i)/norm(V(:,i));
end

评分

1

查看全部评分

发表于 2010-12-21 17:55 | 显示全部楼层
好,支持一下!!!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-25 09:57 , Processed in 0.085072 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表