當前位置:編程學習大全網 - 源碼下載 - 用MATLAB怎麽給壹個數組排序?

用MATLAB怎麽給壹個數組排序?

可以自己寫壹個函數用來給數組排序。或者用MATLAB自帶的

Matlab 用sort函數排序 二維數組2008-09-14 22:51在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 );

  • 上一篇:如何用OpenCV訓練自己的分類器
  • 下一篇:監控系統有哪些部分組成
  • copyright 2024編程學習大全網