楼主: lingyu2001375
1317 0

[问答] matlab循环程序只得到一个结果 [推广有奖]

  • 0关注
  • 1粉丝

高中生

85%

还不是VIP/贵宾

-

威望
0
论坛币
98 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
355 点
帖子
59
精华
0
在线时间
8 小时
注册时间
2010-3-2
最后登录
2015-12-9

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如题。matlab编程,for循环语句,本来要它循环100次,但是得到的结果却只有一个,本想得到100个的。
求牛人指点。整个程序较简单,很多类似语句,目的是求7种方法得到的列向量的7个离差平方和,这7个离差平方和组成一个向量result,排序成ssort向量,循环100次,得到ssort矩阵。整个程序如下:
row=10;%矩阵行数
col=10;%矩阵列数
result=ones(1,7);%设置离差平方和矩阵,在程序中自累加
b=ones(col,1);%初始化权重向量,标准化处理法
c=ones(col,1);%初始化权重向量,归一化处理法
d=ones(col,1);%初始化权重向量,线性最大
e=ones(col,1);%初始化权重向量,线性最小
f=ones(col,1);%初始化权重向量,线性均值
g=ones(col,1);%初始化权重向量,极值处理法
h=ones(col,1);%初始化权重向量,向量规范化
for k=1:100,%<<<<---------------最大循环次数
    A=rand(row,col);% %随机产生决策矩阵,randn()表正态,rand()表均匀
    B=A;%%标准处理法,标准化后的决策矩阵
    C=A;%%归一化处理法,标准化后的决策矩阵
    D=A;%%线性最大,标准化后的决策矩阵
    E=A;%%线性最小,标准化后的决策矩阵
    F=A;%%线性均值,标准化后的决策矩阵
    G=A;%%极值处理法,标准化后的决策矩阵
    H=A;%%向量规范化,标准化后的决策矩阵
    for i=1:length(A(1,:)),%数据标准化处理
        B(:,i)=(A(:,i)-mean(A(:,i),1))/std(A(:,i),1,1);%标准化处理法
        C(:,i)=A(:,i)/sum(A(:,i)); %归一化处理法
        D(:,i)=A(:,i)/max(A(:,i));%线性最大
        E(:,i)=A(:,i)/min(A(:,i));%线性最小
        F(:,i)=A(:,i)/mean(A(:,i));%线性均值
        G(:,i)=(A(:,i)-min(A(:,i)))/(max(A(:,i))-min(A(:,i)));%极值处理法
        H(:,i)=A(:,i)/norm(A(:,i));%向量规范法
    end
    b=(std(B,1)/sum(std(B,1)))';%注意列向量,需要转置,标准化处理法求权重
    c=(std(C,1)/sum(std(C,1)))';%归一化处理法权重
    d=(std(D,1)/sum(std(D,1)))';%线性最大权重
    e=(std(E,1)/sum(std(E,1)))';%线性最小权重
    f=(std(F,1)/sum(std(F,1)))';%线性均值权重
    g=(std(G,1)/sum(std(G,1)))';%极值处理法权重
    h=(std(H,1)/sum(std(H,1)))';%向量规范法权重
    result_b=B*b;%标准化处理法,得到综合评价向量
    result_c=C*c;%归一化处理法,得到综合评价向量
    result_d=D*d;%线性最大,得到综合评价向量
    result_e=E*e;%线性最小,得到综合评价向量
    result_f=F*f;%线性均值,得到综合评价向量
    result_g=G*g;%极值处理法,得到综合评价向量
    result_h=H*h;%向量规范法,得到综合评价向量
    result=[sum((result_b-mean(result_b)).^2),sum((result_c-mean(result_c)).^2),sum((result_d-mean(result_d)).^2),sum((result_e-mean(result_e)).^2),sum((result_f-mean(result_f)).^2),sum((result_g-mean(result_g)).^2),sum((result_h-mean(result_h)).^2)];%将7种方法得到的向量求离差平方和,组成新的向量
    ssort=zeros(1,7);%初始化排序值向量
    temp=sort(result,'descend');
    for s=1:7,%确定离差平方和的排序
        for t=1:7,
            if result(s)==temp(t);
               ssort(s)=t;break;
            end
        end
    end
end

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB matla atlab Lab Atl matlab 程序

什么都要试试看!!!
您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-4 14:42