数学建模社区-数学中国

标题: 请大神帮我看看为何这一程序为何得出的结果这么不尽人意 [打印本页]

作者: hp49    时间: 2012-8-18 20:25
标题: 请大神帮我看看为何这一程序为何得出的结果这么不尽人意
谢谢啦,程序如下,想向量归一化,可是得出的结果很出人意料,不知哪里出错,请指正
clc;clear;
x=[4.77 0.45 3.19 0.1647 0.057 0.362 4.7687;  12.09 1.45 6.25 0.2160 0.062 0.553 10.2775;   9.78 1.9 4.48 0.4015 0.057 0.553 9.7752;  14.29 3.3 5.45 0.043 0.043 0.532 14.2857]
R1=ones(4,7);
S=ones(1,7);
for j=1:7;
    S(1,j)=sqrt(sum(x(:,j).^2));
end
S
for i=1:4
    for j=1:7
        R1(i:j)=x(i,j)/S(1,j);
    end
end
R1(i:j)=R1(4:7)

作者: gt93    时间: 2013-8-26 15:10
楼主我猜测你的意思了,顺手改了一下代码。现在的结果按照列归一化了,请看看我结果对不对。
  1. clc;clear;
  2. x=[4.77 0.45 3.19 0.1647 0.057 0.362 4.7687;
  3.     12.09 1.45 6.25 0.2160 0.062 0.553 10.2775;   
  4.     9.78 1.9 4.48 0.4015 0.057 0.553 9.7752;
  5.     14.29 3.3 5.45 0.043 0.043 0.532 14.2857]
  6. R1=[];
  7. S=[];
  8. for j=1:7;
  9.     S(1,j)=sum(x(:,j));
  10. end
  11. S
  12. for i=1:4
  13.     for j=1:7
  14.         R1(i,j)=x(i,j)./S(1,j);
  15.     end
  16. end
  17. R1
复制代码

作者: xiaoOMming    时间: 2013-8-28 22:58
R1(i:j)=x(i,j)/S(1,j);改成R1(i,j)=x(i,j)/S(1,j);就行了
作者: 天空和海    时间: 2013-8-29 13:19
matlab有自带的归一化函数




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5