这个是我写的程序,对数据进行归一化,但是结果很奇怪,是个新手不知道问题在哪里,请教各位看看应该怎么改,请写个完整的程序,是毕设的东西很急,谢谢!
p=[2017 46.24 259 2 1 0
2007 46.02 255 4 1 157.9
2011 42.83 281 6 1 100
2012 42.68 247 8 1 0
2017 43.47 290 10 1 63.5
2028 42.50 305 12 1 105.3
2033 42.82 341 14 1 52
2041 42.25 288 16 1 58
2016 41.51 326 2 1 111.1
2011 38.89 335 4 1 105.3
2016 39.64 343 6 1 60.6
2019 48.38 300 8 1 44.9
2032 45.07 324 30 1 0
2065 43.08 384 28 1 67.8
1974 45.24 272 4 0 0
1978 46.3 246 6 0 433.7
1980 43.85 283 8 0 0
1980 45.2 291 10 0 106.7
1981 46.93 278 12 0 228.6
1984 42.89 271 14 0 0
1986 41.63 293 16 0 351.6
1967 42.05 277 2 0 0
1967 41.84 264 4 0 0
1960 52.26 337 2 0 141.2
1960 38.27 302 4 0 0
1965 44.23 299 6 0 54.1
1968 39.6 302 8 0 0
1970 43.1 322 10 0 54.8]
for i=1:28
pm=max(abs(p(i,:)));pn=min(abs(p(i,:)));p(i,:)=(p(i,:)-pn)/(pm-pn);
end
data=p
matlab归一化的问题程序错在哪里,应该怎么改
答案:2 悬赏:50 手机版
解决时间 2021-02-12 13:29
- 提问者网友:寂寞撕碎了回忆
- 2021-02-12 04:57
最佳答案
- 五星知识达人网友:神的生死簿
- 2021-02-12 05:33
你把想要归一化的数据贴上来,我帮你归一化,很简单的。。。我在线
matlab里面7.6以上版本都有再带的归一化函数,比如说mapminmax
你的p是5*18矩阵 t是5*5矩阵,你的归一化程序没错,你结果输出就是P和T矩阵,我帮你实现了,请看结果:p=[44.53 2.98 0.77 1.94 5.13 50.95 1.64 0.61 0.38 3.52 51.04 2.03 0.72 0.54 4.39 0.6 0.2 0.2
53.73 3.32 1.04 3.31 4.62 44.53 2.98 0.77 1.94 5.13 47.32 2.48 0.85 1.76 3.44 0.6 0.2 0.2
53.73 3.32 1.04 3.31 4.62 44.53 2.98 0.77 1.94 5.13 53.81 2.21 0.68 0.58 4.21 0.2 0.6 0.2
47.32 2.48 0.85 1.76 3.44 61.37 2.83 1.07 0.26 3.90 44.53 2.98 0.77 1.94 5.13 0.2 0.6 0.2
57.28 3.23 0.81 2.82 3.29 50.95 1.64 0.61 0.38 3.52 53.81 2.21 0.68 0.58 4.21 0.2 0.6 0.2]
t=[46.39 2.44 0.64 1.46 4.72
50.00 2.95 0.79 1.62 4.68
46.90 2.80 0.94 2.80 4.53
55.07 2.77 0.81 2.04 4.84
50.30 2.40 1.01 0.94 3.60]
for i=1:5
P(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));
end
for i=1:5
T(i,:)=(t(i,:)-min(t(i,:)))/(max(t(i,:))-min(t(i,:)));
end
data1=P' %转置得到18*5
data2=T' %转置得到5*5
最后结果是:
data1 =
0.8720 1.0000 0.9985 0.7703 1.0000
0.0547 0.0583 0.0582 0.0373 0.0531
0.0112 0.0157 0.0157 0.0106 0.0107
0.0342 0.0581 0.0580 0.0255 0.0459
0.0970 0.0826 0.0824 0.0530 0.0541
0.9982 0.8281 0.8269 1.0000 0.8891
0.0283 0.0519 0.0519 0.0430 0.0252
0.0081 0.0106 0.0106 0.0142 0.0072
0.0035 0.0325 0.0325 0.0010 0.0032
0.0653 0.0921 0.0920 0.0605 0.0582
1.0000 0.8803 1.0000 0.7247 0.9392
0.0360 0.0426 0.0375 0.0454 0.0352
0.0102 0.0121 0.0090 0.0093 0.0084
0.0067 0.0291 0.0071 0.0284 0.0067
0.0824 0.0605 0.0748 0.0806 0.0703
0.0079 0.0075 0 0 0
0 0 0.0075 0.0065 0.0070
0 0 0 0 0
data2 =
1.0000 1.0000 1.0000 1.0000 1.0000
0.0393 0.0439 0.0405 0.0361 0.0296
0 0 0 0 0.0014
0.0179 0.0169 0.0405 0.0227 0
0.0892 0.0790 0.0781 0.0743 0.0539
matlab里面7.6以上版本都有再带的归一化函数,比如说mapminmax
你的p是5*18矩阵 t是5*5矩阵,你的归一化程序没错,你结果输出就是P和T矩阵,我帮你实现了,请看结果:p=[44.53 2.98 0.77 1.94 5.13 50.95 1.64 0.61 0.38 3.52 51.04 2.03 0.72 0.54 4.39 0.6 0.2 0.2
53.73 3.32 1.04 3.31 4.62 44.53 2.98 0.77 1.94 5.13 47.32 2.48 0.85 1.76 3.44 0.6 0.2 0.2
53.73 3.32 1.04 3.31 4.62 44.53 2.98 0.77 1.94 5.13 53.81 2.21 0.68 0.58 4.21 0.2 0.6 0.2
47.32 2.48 0.85 1.76 3.44 61.37 2.83 1.07 0.26 3.90 44.53 2.98 0.77 1.94 5.13 0.2 0.6 0.2
57.28 3.23 0.81 2.82 3.29 50.95 1.64 0.61 0.38 3.52 53.81 2.21 0.68 0.58 4.21 0.2 0.6 0.2]
t=[46.39 2.44 0.64 1.46 4.72
50.00 2.95 0.79 1.62 4.68
46.90 2.80 0.94 2.80 4.53
55.07 2.77 0.81 2.04 4.84
50.30 2.40 1.01 0.94 3.60]
for i=1:5
P(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));
end
for i=1:5
T(i,:)=(t(i,:)-min(t(i,:)))/(max(t(i,:))-min(t(i,:)));
end
data1=P' %转置得到18*5
data2=T' %转置得到5*5
最后结果是:
data1 =
0.8720 1.0000 0.9985 0.7703 1.0000
0.0547 0.0583 0.0582 0.0373 0.0531
0.0112 0.0157 0.0157 0.0106 0.0107
0.0342 0.0581 0.0580 0.0255 0.0459
0.0970 0.0826 0.0824 0.0530 0.0541
0.9982 0.8281 0.8269 1.0000 0.8891
0.0283 0.0519 0.0519 0.0430 0.0252
0.0081 0.0106 0.0106 0.0142 0.0072
0.0035 0.0325 0.0325 0.0010 0.0032
0.0653 0.0921 0.0920 0.0605 0.0582
1.0000 0.8803 1.0000 0.7247 0.9392
0.0360 0.0426 0.0375 0.0454 0.0352
0.0102 0.0121 0.0090 0.0093 0.0084
0.0067 0.0291 0.0071 0.0284 0.0067
0.0824 0.0605 0.0748 0.0806 0.0703
0.0079 0.0075 0 0 0
0 0 0.0075 0.0065 0.0070
0 0 0 0 0
data2 =
1.0000 1.0000 1.0000 1.0000 1.0000
0.0393 0.0439 0.0405 0.0361 0.0296
0 0 0 0 0.0014
0.0179 0.0169 0.0405 0.0227 0
0.0892 0.0790 0.0781 0.0743 0.0539
全部回答
- 1楼网友:孤独的牧羊人
- 2021-02-12 06:16
你好!
在我这没出错啊。。!你用的什么版本的matlab
我的回答你还满意吗~~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯