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文件生成可执行文件,详细的