Matlab 用sort函式排序 二維陣列

2021-05-24 06:07:11 字數 662 閱讀 8913

在matlab中排序某個向量(一維)時,可以使用sort(a),其中a為待排序的向量,如果僅是用來排序a,那麼直接使用sort(a)即可, 如果排序後還需要保留原來的索引可以用返回值,即[b,ind]=sort(a),計算後,b是a排序後的向量,a保持不變,ind是b中每一項對應於a 中項的索引。排序是安公升序進行的。

在matlab中,訪問矩陣中的元素,一維用a(1)訪問向量a的第乙個元素;(下標從1開始);二維用a(1,2)訪問a中第一行,第二列的元素。

由於在sort函式的結果中,是安公升序排序的,要轉換成降序,先用x=eye(n)生成乙個n維的單位陣,然後用x=rot90(x)將其旋轉為次對角線的單位陣,再用原來矩陣乘以x即可,如要講a逆序排列採用如下步驟:

x=eye(size(a));

x=rot90(x);

a=a*x;

假如a是乙個2*n的矩陣,即兩行.

b=a(1,:);

[c,pos]=sort(b);%pos為排序後的下標,c為第一行的排序結果;

a(2,:)=a(2,pos);%第二行按照第一行排序的下標對應

a(1,:)=c;%第一行結果重新賦給a 的第一行

以下適用於m*n的矩陣按第一行排序

[ b, pos ] = sort( a( 1, : ) );

a = a( :, pos );

sort排序函式

所以自己總結了一下,首先看sort函式見下表 函式名 功能描述 sort 對給定區間所有元素進行排序 stable sort 對給定區間所有元素進行穩定排序 partial sort 對給定區間所有元素部分排序 partial sort copy 對給定區間複製並排序 nth element 找出給...

sort 排序函式

需要標頭檔案 語法描述 sort begin,end,cmp cmp引數可以沒有,如果沒有預設公升序排序。sort函式使用例項 include include includeusing namespace std int main sort a,a 5 for int i 0 i 5 i cout ...

sort 排序函式

include include 因為用了sort 函式 include 因為用了greater using namespace std void main int i int len sizeof a sizeof int 這裡切記要除以sizeof int sort a a len,greater...