1樓:匿名使用者
在matlab中常用sort函式對數列進行排序[b,i] = sort(a)
這樣得到的b序列就是a序列中元素從小到大排列的序版列而sort函式不單隻能返回權一個序列b,還能返回第二個引數i這裡i就是排序後數列各元素在原序列中的位置,也就是b=a(i);
這時候只要再對i排序一次
[c,ii]=sort(i)
得到的ii就是原數列的各個元素在排序後的數列的位置,也就是a=b(ii);
2樓:匿名使用者
假如你要排序的陣列是 a,那麼:
[b,i] = sort(a)
返回的 b 是排序後的陣列,i 是對應元素原來在專 a 中的位置。
比如:a = [79, 39, 25, 41, 10];
[b, i] = sort(a)
% >>>
% b =
% 10 25 39 41 79% i =
% 5 3 2 4 1觀察 i,第一屬個元素是 5。這就表示,原來的第 5 個元素,排序後在第 1 的位置。
這個元素的值是 10,即是 b(1)。如果你只關心 i 對排序後的陣列不感興趣,也可寫成:
[~,i] = sort(a)
這樣就只返回 i,不返回 b 了。
3樓:匿名使用者
用sort函式排序的話,[sx,index] = sort(x) ,排序後,sx是排序好的向量,index是 向量sx中對x 的索引。
4樓:匿名使用者
如果你用的是sortrows函式,那麼可以這樣寫:[y,i]=sortrows(a);
其中y是排序後的數列,i是排序後元素在原來的數列中的位置。
用matlab怎麼在數列中找到需要的值並返回在數列中的位置
5樓:匿名使用者
matlab find函式用於返回所需要元素的所在位置 (位置的判定:在矩陣中,第一列開始,自版
上而下,依權
次為1,2,3...,然後再從第二列,第三列依次往後數)find(a)返回矩陣a中非零元素所在位置>> a = [1 0 4 -3 0 0 0 8 6];
>> x = find(a)
x =1 3 4 8 9find(a>5)返回矩陣a中大於5的元素所在位置>> find(a>5)
ans =
8 9
[i,j,v]=find(a) 返回矩陣a中非零元素所在的行i,列j,和元素的值v(按所在位置先後順序輸出)
>> a=[3 2 0; -5 0 7; 0 0 1];
>> [i,j,v]=find(a)
i =121
23j =112
33v =3-52
71find(a>m,4)返回矩陣a中前四個數值大於m的元素所在位置也是自己理解,如有不正之處,還望指正!希望我可以幫上點小忙!
6樓:發夢發牛豆
用for語句再用if判斷就可以了,最後放回 i
有一列資料,請程式設計按升序排序;然後輸入一個數後,按原來排序的規律將它插入到數列中; 10
7樓:醉隱山人
#include
void main()
;int m,n;
printf("請輸入m的值:\n");
scanf("%d",&m);
n=zhe_ban(a,m);
if(n==0)
printf("無數
次\n");
else
printf("該數是第%d個\n",n+1);
printf("\n如果滿意請記得給分\n");
}int zhe_ban(int a[15],int n){int s=0,b=14,t=0,mid; mid = ( s+b )/2; while(a[mid]!=n) { if(n>a[mid]) mid=(mid+b)/2; if(n你
matlab中,怎樣把一組給定的資料隨機排列?
8樓:四舍**入
可以參考下面的**:
x=x(randperm(numel(x)))numel(x)獲得變數長度
randperm(n)產生長度為n的隨機數列 如:
randperm(4)
ans=
3 2 1 4
x(...) 取得x中相應元素產生新數列
9樓:
使用函式randperm()即可實現。
例:a = [7,6,3,9,10]; % 試驗矩陣【用於試驗,矩陣元素為待隨機排列的資料】
randindex_a = randperm(5); % 生成1到5這幾個數的隨機排列
b = a(randindex_a); % 隨機排列後的矩陣
每一行**執行結果:
>>a = [7,6,3,9,10]
a = 7 6 3 9 10
>>randindex_a = randperm(5)randindex_a =1 4 5 3 2>> b = a(randindex_a)b =7 9 10 3 6
擴充套件資料函式randperm()
1、語法格式:r = randperm(n)2、函式功能:將數字1:n進行隨機排列,排列結果儲存在行向量內3、例:輸入 randperm(3)
輸出 3 1 2
4、使用的方法:
利用索引值的隨機排列,生成所有元素的隨機排列
10樓:
x=x(randperm(numel(x)))numel(x)獲得變數長度
randperm(n)產生長度
為n的隨機數列 如:
randperm(4)
ans=
3 2 1 4
x(...) 取得x中相應元素產生新數列
11樓:匿名使用者
同意2樓的觀點
就是這樣,當然你也可以使用rand等生成其他隨機數
請問matlab中怎麼把一維陣列逆序排列,如將a=[1,2,3,4,5],轉成b=[5,4,3,2,1]。有沒有一個現成的函式實現呀
12樓:四舍**入
用:b=fliplr(a);
fliplr左右翻轉矩陣
語法:b=fliplr(a)
將矩陣a的列繞垂直軸進行左右翻轉matabc如果a是一個行向量,fliplr(a)將a中元素的順序進專行翻轉。
如果a是一個列向量,fliplr(a)還等於a。
13樓:凌亂心扉
用:baib=fliplr(a);
fliplr左右翻轉矩陣
語法:du
b=fliplr(a)
將矩陣a的列繞垂
zhi直軸進行dao左右翻轉matabc
如果a是一專個行向量,fliplr(a)將a中元屬素的順序進行翻轉。
如果a是一個列向量,fliplr(a)還等於a。
舉例說明:
例一:如果a是一個行向量
a=[1 3 5 7 9]
fliplr(a)
ans=[9 7 5 3 1]
例二:如果a是一個列向量
a=[135
79]fliplr(a)
ans=[135
79]【功能簡介】實現矩陣左右翻轉。
【語法格式】
b=fliplr(a)
對矩陣a進行左右翻轉。
【例項3.47】對矩陣magic(3)進行左右翻轉。
>> a=magic(3)
a =8 1 6
3 5 7
4 9 2
>> b=fliplr(a) %左右翻轉b =
6 1 8
7 5 3
2 9 4
【例項分析】左右翻轉的過程中,如果矩陣有奇數列,那麼中間一列是沒有變化的。
14樓:戶衣
matlab中把一維數
bai組逆序排列,可以通du過fliplr函式zhi來進行操作。
daofliplr,是指
專對矩陣屬
操作的函式,可以實現矩陣翻轉。
將一維陣列逆序排列步驟(如a=[1,2,3,4,5]轉成b=[5,4,3,2,1]):
1、雙擊開啟matlab應用程式。
2、在matlab介面中的「命令列視窗」中輸入命令。
3、根據紅色區域位置,在「命令列視窗」輸入「a=[1,2,3,4,5]」。
4、通過函式fliplr求矩陣逆序排列,在「命令列視窗」輸入「b=fliplr(a)」,按下回車鍵。可求得矩陣逆序排列b=[5,4,3,2,1]。
15樓:匿名使用者
fliplr(a);
你可以在matlab中輸入help fliplr具體看一看!
16樓:
沒有bai這種函式吧,自己編一du個函式,加zhi入庫不就可以了這個dao很簡單啊
function (b)=paixu(a);j=1;
n=length(a);
for j=1:n
b(n-j+1)=a(j);
end沒仔細弄你在內改改,應該可以容的
17樓:匿名使用者
b=a(end:-1:1)
18樓:匿名使用者
sort(a,'descend')
matlab中,怎麼找出一組資料中靠近某個值的所有點,並輸出位置 5
19樓:59分粑粑
實現的方法和詳細的操作步驟如下:
1、第一步,需要知道matlab陣列找到所有接近某個值的點的座標是使用「find」函式,可以在命令列視窗中輸入「help find」,如下圖所示,然後進入下一步。
2、其次,完成上述步驟後,輸入「a =[1 4 5;6 7 8;7 9 12]」,在matlab命令列視窗中建立副本陣列,如下圖所示,然後進入下一步。
3、接著,完成上述步驟後,輸入「[m,n] =find(a == 9)」並找到等於9的陣列的座標,如下圖所示,然後進入下一步。
4、然後,完成上述步驟後,按enter鍵確認,可以看到陣列中有一個座標等於9,即第三行和第二列,如下圖所示,然後進入下一步。
5、最後,完成上述步驟後,如果有多個具有相同的值,將返回相應的多個座標位置,如下圖所示。這樣,問題就解決了。
20樓:智慧小白菜
1、首先需要知道matlab陣列找靠近某個值的所有點座標,是使用find函式,可以在命令列視窗中輸入help find。
2、在matlab命令列視窗中輸入a=[1 4 5;6 7 8;7 9 12],建立a陣列。
3、輸入[m,n]=find(a==9),找到a陣列等於9的座標。
4、按回車鍵之後,可以看到a陣列等於9的座標有一個,是第3行第2列。
5、如果等於的值有多個,會返回多個座標位置。
21樓:匿名使用者
a=[1, 3,4
4,5,3];
b=find(a>2&a<5);
b =235
6b代表所需資料的下標,a的元素自上而下自左向右排列
22樓:匿名使用者
假設你的資料存在一個矩陣h中[~, i]=min(abs(h(:)-0.0054))i是最接近0.0054的列索引位置。最近的值為y=h(i)
怎樣用matlab提取子數列下標怎麼解決
clear all clc a 1 121 for i 1 3 length a b i a i endid find b b b id a ones 1,121 for j 1 1 40 b j a 3j 2 end for i 1 41 b i a 3 i 2 end matlab 提取矩陣下標...
怎麼在excel上對資料排名次,怎樣在Excel中用函式給成績排名次?
如果資料在a1 a20,需要進行排名,那麼在b1 b20輸入以下公式,按ctrl enter組合鍵結束 rank a1,a 1 a 20 使用rank函式 不會使用可參考函式幫助,或者在此上傳資料 2007為例,選中要排序的專案,點開始,右邊的排序和篩選。怎樣在excel中用函式給成績排名次?1 開...
怎樣在matlab中輸出雷克子波
雷克子波及其振幅譜的matlab輸出 fm 50 主頻 dt 0.001 時間域取樣間隔 number 100 取樣點數 t number 2 1 number 2 a 1 2 pi fm t 0.001 2 exp pi fm t 0.001 2 subplot 2,1,1 plot t,a ti...