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...