HNzhangjie 发表于 2012-8-10 10:44

【求助】一个matlab 简单程序问题

X=[2.0         1500        20000         5.5        5        9
2.5         2700        18000         6.5        3        5
1.8         2000        21000         4.5        7        7
2.2         1800        20000         5.0        5        5];
for j=1:3
Z1(:,j)=(X(:,j)-min(X(:,j)))/(max(X(:,j))-min(X(:,j)));
for j=4
Z2=(min(X(:,j))-X(:,j))/(max(X(:,j))-min(X(:,j)));
for j=5:6
Z3(:,j)=(X(:,j)-min(X(:,j)))/(max(X(:,j))-min(X(:,j)));
Z=;
end
end
end
Z

结果为
Z =

    0.2857         0    0.6667   -0.5000         0         0         0         0    0.5000    1.0000
    1.0000    1.0000         0   -1.0000         0         0         0         0         0         0
         0    0.4167    1.0000         0         0         0         0         0    1.0000    0.5000
    0.5714    0.2500    0.6667   -0.2500         0         0         0         0    0.5000         0
中间有四列0是由于
for j=5:6
Z3(:,j)=(X(:,j)-min(X(:,j)))/(max(X(:,j))-min(X(:,j)));
这里出了问题,但不知道是什么问题。 望高人指教

zhangc_ningbo 发表于 2012-8-10 10:48

你的目的是什么?

HNzhangjie 发表于 2012-8-10 10:52

zhangc_ningbo 发表于 2012-8-10 10:48 static/image/common/back.gif
你的目的是什么?

用极差变换法把X归一化,得到归一矩阵Z

Anonymous 发表于 2012-8-10 11:41

当你写这一行程序

gaoxian 发表于 2012-8-10 11:43

for j=5:6 Z3(:,j)=(X(:,j)-min(X(:,j)))/(max(X(:,j))-min(X(:,j)));已经默认Z3是一个四行六列的矩阵只不过前面四列都默认为0后面两列存储了数据,而后面Z=;这时候你的Z是一个四行十列的矩阵,所以中间会有四列的0

gaoxian 发表于 2012-8-10 11:48

for j=1:3
    Z1(:,j)=(X(:,j)-min(X(:,j)))/(max(X(:,j))-min(X(:,j)));
    for j=1
        Z2=(min(X(:,j+3))-X(:,j+3))/(max(X(:,j+3))-min(X(:,j+3)));
        for j=1:2
            Z3(:,j)=(X(:,j+4)-min(X(:,j+4)))/(max(X(:,j+4))-min(X(:,j+4)));
            Z=;
        end
    end
end
Z
这样就可以了

gaoxian 发表于 2012-8-10 11:51

for j=1:3
    Z1(:,j)=(X(:,j)-min(X(:,j)))/(max(X(:,j))-min(X(:,j)));
end
for j=1
    Z2=(min(X(:,j+3))-X(:,j+3))/(max(X(:,j+3))-min(X(:,j+3)));
end
for j=1:2
    Z3(:,j)=(X(:,j+4)-min(X(:,j+4)))/(max(X(:,j+4))-min(X(:,j+4)));
end
Z=
不过我这样写和你那样写是同样的作用,不明白你为什么要嵌套进去,其实这样更好理解吧

HNzhangjie 发表于 2012-8-10 14:53

gaoxian 发表于 2012-8-10 11:51 static/image/common/back.gif
for j=1:3
    Z1(:,j)=(X(:,j)-min(X(:,j)))/(max(X(:,j))-min(X(:,j)));
end


谢 啦~ 编程不是很好,在学习中~

k_is_power 发表于 2012-8-10 16:35

还不错,就是不知道怎么运行
页: [1]
查看完整版本: 【求助】一个matlab 简单程序问题