当前位置:编程问答 > Matlab >

Matlab/simulink:一个数组 不用排序的方法 找出它当中第K大的数

补充:高手请进!!完成继续给分!!会的速度点,小弟急啊!
追问:能给个具体的语句吗
答案:a = floor(rand(1,10) * 10)
a =
     4     4     1     0     2     7     4     6     4     0
>> find(a==0)
ans =
     4    10
>> find(a==7)
ans =   6     你懂的 啊B哥
其他:循环去掉k个最大的 设置个标志矩阵,先赋值都为1,做k次循环。每次循环,各元素和对应的标志位相乘,找最大的元素和对应位置,并把对应位置的标志位置零,再下次进行下次循环。第k次循环找到的最大数就是第k大的数。
(ps 本来不想贴具体语句的,还是好人做到底吧,呵呵)

a = [2 6 4 3 1 9 5 7 0 8];
flag = ones(size(a));
k = 5;
for j=1:k
    [data i] = max(a.*flag);
    flag(i) = 0;
end 

上一个:[编程开发] 帮忙看看MATLAB里面自定义函数到底怎么调用?? 数值分析里面一个问题: function s=traprl(f,
下一个:如何将matlab的m文件生成可执行文件,详细的

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,