matlab中对一个数组求最大的几个数

[复制链接]
查看11 | 回复1 | 2009-8-31 10:04:17 | 显示全部楼层 |阅读模式
如果不用库函数的话,可以用下面的代码:clc;clear;a=[3,15,6,21,18,2,18,19,1,4,7,29,21,23,29,23,14,6,9,29,31];m=3;n=4;%以后不需要改动j=0;jlast=0;for i=1:length(a)
if mod(i,m)==1
j=j+1;
end
if j-jlast==1
b(j,:)=[a(i),i];
else
if b(j,1)minc(1)
if pc==1;
c=[c(2:n,:);b(i,:)];
elseif pc==n
c=[c(1:n-1,:);b(i,:)];
else
c=[c(1:pc-1,:);c(pc+1:n,:);b(i,:)];
end
endendb',c'
回复

使用道具 举报

千问 | 2009-8-31 10:04:17 | 显示全部楼层
可以利用sort函数给数列a从小到大排列,找前几个最大的。如下:[b,i]=sort(a)。b为从小到大的数字,i为对应位置。要找前3个,如下输入:>>a=[3,15,6,21,18,2,18,19,1,4,7,29,21,23,29,23,14,6,9,29,31];>>[b,i]=sort(a)b=columns1through121234667914151818columns13through21192121232329292931i=columns1through1296110318111917257columns13through218413141612152021>>b(19:21)ans=292931>>i(19:21)ans=152021
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行