matlab 一个数组中的数据求平均值,然后取大于平均值的数据组成新的数组,再求平均值取大值...

大量数据的处理,最后让数据剩余5个左右怎么做?求程序代码谢谢啦!!急急急!... 大量数据的处理,最后让数据剩余5个左右怎么做?求程序代码谢谢啦!!急急急! 展开
 我来答
qingningleyun
推荐于2017-10-09 · TA获得超过5852个赞
知道大有可为答主
回答量:2991
采纳率:30%
帮助的人:3006万
展开全部
c = 5;
A = rand(1,10*c);
while length(A)>(c+1)
    A = A(A>mean(A));
end;
disp(A)
更多追问追答
追问
运行结果貌似有问题啊,比如我如果要取a=[1,2,3,45,4,2,3,5,78,56,87,54,32,4,83,548,68];迭代的话该怎么做?
追答
% 楼上是对的,按题意就是找出最大的5个左右的数
% while 就是迭代的意思,数组个数超过6,将取得的结果再运算,直到满足条件
A = [1,2,3,45,4,2,3,5,78,56,87,54,32,4,83,548,68];

while length(A)>(5+1) 

    A = A(A>mean(A)); 

end; 

disp(A)

    78    87    83   548    68

frogley
2014-02-08 · TA获得超过1854个赞
知道小有建树答主
回答量:1008
采纳率:50%
帮助的人:1065万
展开全部
你这不等价于直接取最大的5个数么?
追问
是的,主要是想问其中迭代运算程序怎么做
追答

大致上需要一个while循环,两个数组a1和a2。


伪码:

while (a1的size>5){
    清空a2;
    遍历a1,将大于avg(a1)的元素插入到a2中;
    清空a1;
    将a2的所有元素拷贝到a1中;
}

这样应该就可以了。


不过你直接对数组排序,取出最大的5个元素不就结了?何必非要用迭代呢?

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式