matlab中對陣列求最大的幾個數

時間 2021-08-30 09:46:34

1樓:匿名使用者

改好了。呵呵,和我想的一樣,是升序。

%下面是你要輸入的資料

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%你要取的前n個數

%下面一個字也不用改

b=reshape(a,m,);

[c i]=max(b);

[d,j]=sort(c);

j=sort(j(end:-1:end-n+1));

k=m*(j-1)+i(j);

c=[a(k);k]%答案

2樓:匿名使用者

如果不用庫函式的話,可以用下面的**:

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;

endif 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,:)];

endend

endb',c'

3樓:賁付友郜未

可以利用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=

columns

1through121

2346

67914

1518

18columns

13through

2119

2121

2323

2929

2931i=

columns

1through129

61103

1811

191725

7columns

13through218

4131416

1215

2021

>>b(19:21)

ans=

2929

31>>

i(19:21)

ans=

152021

matlab提取一維陣列中較大10個數

4樓:匿名使用者

你先用b=sort(a)把陣列排序,然後提取第10個當座標就是b(10), 大於b(10)的定然就是屬於版最大10個以內的權了。

你用find(a>b(10))就可以找到這些大於b(10)的座標。

然後你可以根據座標提取這些數

a(find(a>b(10)))

當然這個的前提是b(11)和b(10)不相等(陣列沒有兩個數是相同的),不然都一樣的話提取的就不是最大的10個數,而是9個數了。

matlab中怎麼求矩陣中前最大元素值?謝謝啦

a1 rand 1,10 a1 sort,ind sort a1 a1 ind end 2 end 思路 先排序,然後取出相應的2個最大值 a1 columns 1 through 7 0.7919 0.8014 0.7402 0.6417 0.9746 0.5425 0.0237 columns ...

在matlab中怎樣求圖形的面積

a 對於任意給定一個圖形,怎樣求出其面積,需要具體情況具體對待 b 求特殊形狀的面積.例如求圓的面積 function arear r r 5 圓的半徑 arear pi r 2 function jxa a,b 求矩形的面積,a,b為其長與寬areaa a b 總之你可以把一些常用的圖形自己編寫成...

c語言程式設計題定義長度為10的陣列求最大值及

莫道無情 c語言程式如下 include void fun int a,int n,int k int i,maxxr,j maxxr a 0 for i 0 iif maxxrmaxxr a i for i 0 iif maxxr a i k fun a,10,k printf d,d k,a k...