Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2011-04-13
帖子: 6
声望力: 0 ![]() |
![]()
这个矩阵是老师直接给我的,是1933*457,里边有一些缺失数据用NaN表示了,我现在要进行数据预处理,所以就想把矩阵中的NaN去掉,用上下的有效值的平均数来表示,这样说够明白了吗?矩阵很大,实在不知道怎么写代码,写了很多个都错了,请问,究竟要怎么写才能实现呢?请高手指点,这个对你们来说非常简单的问题我已经想了两天了
|
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2007-12-07
帖子: 22
声望力: 18 ![]() |
![]()
测试数据
代码:
a = magic(10); a b = randi(100,1,15); a(b) = NaN; a a(isnan(a)) = mean2(a(~isnan(a))); a 代码:
a = 92 99 1 8 15 67 74 51 58 40 98 80 7 14 16 73 55 57 64 41 4 81 88 20 22 54 56 63 70 47 85 87 19 21 3 60 62 69 71 28 86 93 25 2 9 61 68 75 52 34 17 24 76 83 90 42 49 26 33 65 23 5 82 89 91 48 30 32 39 66 79 6 13 95 97 29 31 38 45 72 10 12 94 96 78 35 37 44 46 53 11 18 100 77 84 36 43 50 27 59 a = 92 99 1 8 15 67 NaN 51 58 40 98 80 7 NaN 16 73 55 57 64 NaN 4 81 NaN 20 22 NaN 56 63 NaN 47 85 87 19 21 3 60 62 69 71 28 86 93 25 2 9 61 68 NaN 52 34 17 NaN 76 83 NaN 42 NaN 26 33 65 23 NaN NaN 89 91 48 30 32 39 66 79 6 13 95 97 29 31 38 45 72 NaN 12 94 96 78 35 NaN 44 46 53 11 18 100 77 84 36 43 NaN 27 59 a = 92.0000 99.0000 1.0000 8.0000 15.0000 67.0000 50.4353 51.0000 58.0000 40.0000 98.0000 80.0000 7.0000 50.4353 16.0000 73.0000 55.0000 57.0000 64.0000 50.4353 4.0000 81.0000 50.4353 20.0000 22.0000 50.4353 56.0000 63.0000 50.4353 47.0000 85.0000 87.0000 19.0000 21.0000 3.0000 60.0000 62.0000 69.0000 71.0000 28.0000 86.0000 93.0000 25.0000 2.0000 9.0000 61.0000 68.0000 50.4353 52.0000 34.0000 17.0000 50.4353 76.0000 83.0000 50.4353 42.0000 50.4353 26.0000 33.0000 65.0000 23.0000 50.4353 50.4353 89.0000 91.0000 48.0000 30.0000 32.0000 39.0000 66.0000 79.0000 6.0000 13.0000 95.0000 97.0000 29.0000 31.0000 38.0000 45.0000 72.0000 50.4353 12.0000 94.0000 96.0000 78.0000 35.0000 50.4353 44.0000 46.0000 53.0000 11.0000 18.0000 100.0000 77.0000 84.0000 36.0000 43.0000 50.4353 27.0000 59.0000
__________________
接MATLAB图像处理项目,毕设.也可作vb作业. QQ: 790404545 |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2011-04-13
帖子: 6
声望力: 0 ![]() |
![]()
大侠,谢谢您的回答,可是我要的不是矩阵中所有数的均值,而是这个NaN值上下值的均值啊,要怎么改?
|
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2007-12-07
帖子: 22
声望力: 18 ![]() |
![]()
跟位置有关,必须循环了
__________________
接MATLAB图像处理项目,毕设.也可作vb作业. QQ: 790404545 |
![]() |
![]() |