主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

排序

配列要素の並べ替え

説明

B=排序(一个一个の要素を昇順に並べ替えます。

  • 一个がベクトルの場合,sort ()はベクトル要素を並べ替えます。

  • 一个が行列の場合,sort ()一个の列をベクトルとして扱い,各列を並べ替えます。

  • 一个が多次元配列の場合,sort ()は,サイズが1でない最初の配列次元に対して作用します。ここでは要素をベクトルとして扱います。

B=排序(一个昏暗的は,次元昏暗的に沿って並べ替えられた一个の要素を返します。たとえば,一个が行列である場合,分类(2)は各行の要素を並べ替えます。

B=排序(___方向は,前述の構文のいずれかを使って方向で指定された順序で並べ替えた一个の要素を返します。“提升”は昇順(既定)を示し,“下”は降順を示します。

B=排序(___名称,值は並べ替えのための追加パラメーターを指定します。たとえば,sort(“ComparisonMethod”,“abs”)一个の要素を大きさの順に並べ替えます。

B) =排序(___は,前述の任意の構文でインデックスベクトルの集合も返します。一个と同じサイズで,並べ替えられた次元に沿った一个の要素のBへの配置を示します。たとえば,一个がベクトルの場合,B =(我)です。

すべて折りたたむ

行ベクトルを作成してその要素を昇順に並べ替えます。

A = [9 0 -7 5 3 8 -10 4 2];B = sort ()
B =1×9-10 -7 0 2 3 4 5 8 9

行列を作成してその各行を昇順に並べ替えます。

A = [3 6 5;7 2 4;1 0 9)
一个=3×33 6 5 7 -2 4 10 0 -9
B =类(2)
B =3×33 5 6 -2 4 7 -9 0 1

行列を作成してその列を降順に並べ替えます。

A = [10 -12 4 8;6 -9 8 0;2 3 11 -2;1 1 9 3]
一个=4×410 -12 4 8 6 -9 8 0 2 3 11 -2 11 9 3
B =排序(一个“下”
B =4×410 3 11 8 6 1 9 3 2 -9 8 0 1 -12 4 -2

R2017a以降,二重引用符を使用して字符串配列を作成し,関数排序を使用して並べ替えられるようになりました。Unicode®の辞書順に従って字符串配列の各列にある文字列を並べ替えます。

= (“桑托斯”“燃烧”...“琼斯”“森田”...“彼得罗夫”“亚当斯”];B = sort ()
B =3 x2字符串"Jones" "Adams" "Petrov" "Burns" Santos" Morita"

各行の字符串を並べ替えます。

B =类(2)
B =3 x2字符串伯恩斯,桑托斯,琼斯,森田,亚当斯,佩特罗夫

datetime値の配列を作成し,昇順で古い日付から新しい日付に並べ替えます。

ds = {“2012-12-22”“2063-04-05”“1992-01-12”};一个= datetime (ds,“格式”“yyyy-MM-dd”
一个=3 x1 datetime2012-12-22 2063-04-05 2012-12-22
[B,我]= sort ()
B =3 x1 datetime1992-01-12 2012-12-22 1992-01-12
我=3×13 1 2

Bは,並べ替えられた日付を一覧表示し,は,対応する一个のインデックスを含みます。

並べ替えた要素に元の配列から直接アクセスするには,インデックス配列を使用します。

(我)
ans =3 x1 datetime1992-01-12 2012-12-22 1992-01-12

関連データを対応する要素に格納した2つの行ベクトルを作成します。

X = [3 6 4 2 1 5];Y = (“黄色”“紫色”“绿色”“橙色”“红色”“蓝色”];

まずベクトルXを並べ替えてから,ベクトルYXと同じ順序で並べ替えます。

[Xsorted,我]= (X)排序
Xsorted =1×61 2 3 4 5 6
我=1×65 4 1 3 6 2
Ysorted = Y(我)
Ysorted =1 x6字符串"红" "橙" "黄" "绿" "蓝" "紫"

2 x 2 x 2の配列を作成し,要素を3番目の次元に沿って昇順に並べ替えます。

A(:,:,1) = [2 3];1 6];A(:,:,2) = [-1 9];0 12];一个
A = A(:,:,1) = 2 3 1 6 A(:,:,2) = -1 9 0 12
B =类(3)
B = B(:,:,1) = -1 3 0 6 B(:,:,2) = 2 9 1 12

一个のすべての要素を並べ替えるには,一个の列表現(:)を使用します。

B =排序((:))
B =8×1-1 0 12 3 6 9 12

複素数ベクトルの要素を,実数部で並べ替えます。既定では,関数排序は複素数値を大きさで並べ替え,同順位の並べ替えには位相角を使用します。代わりに複素数値を実数部で並べ替えるには,“ComparisonMethod”の値を“真实”的と指定します。実数部が等しい要素については,排序は虚数部を基準として並べ替え順序を決定します。

A = [1+2i 3+1i 1i 0 -1i];B =排序(一个“ComparisonMethod”“真实”的
B =1×5复杂0.0000 - 1.0000i 0.0000 + 0.0000i 0.0000 + 1.0000i 1.0000 + 2.0000i 3.0000 + 1.0000i

入力引数

すべて折りたたむ

入力配列。ベクトル、行列または多次元配列として指定します。

  • 一个がスカラーの場合,sort ()一个を返します。

  • 一个が複素数の場合,排序は既定では要素を大きさの順に並べ替えます。大きさの等しい要素が複数ある場合,区間(−π,π)で位相角の順にこれらの要素を並べ替えます。

  • 一个が文字ベクトルの细胞配列または字符串配列の場合,sort ()はutf - 16文字エンコードスキームのコードの順序に従って要素を並べ替えます。並べ替えでは大文字小文字が区別されます。文字配列と字符串配列の並べ替えの詳細については,文字配列と字符串配列の並べ替え順序を参照してください。

  • 一个が字符串配列の場合,排序は配列の要素を並べ替えますが,字符串内の文字は並べ替えません。

  • 一个が直言配列の場合,並べ替え順序は类别(A)によって返されるカテゴリの順序に基づきます。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符|字符串|细胞|分类|datetime|持续时间
複素数のサポート:あり

演算の対象の次元。正の整数のスカラーとして指定します。値を指定しない場合,既定値は,サイズが1ではない最初の配列の次元です。

  • 行列一个を考えます。类(1)一个の列の要素を並べ替えます。

  • 分类(2)一个の行の要素を並べ替えます。

昏暗的ndims (A)より大きい場合,排序一个を返します。一个が细胞配列の場合,昏暗的はサポートされないため,排序はサイズが1でない最初の配列の次元のみに沿って動作します。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

並べ替える方向。“提升”または“下”として指定します。一个が细胞配列の場合,方向はサポートされないため,排序は昇順でのみ並べ替えを実行します。

名前と値のペアの引数

オプションの名称,值の引数ペアをコンマ区切りで指定します。的名字は引数名で,价值は対応する値です。的名字は引用符で囲まなければなりません。Name1, Value1,…,的家のように,複数の名前と値のペアの引数を任意の順序で指定できます。

例:sort(“MissingPlacement”,“最后”)

欠損値 (NaT<定义>失踪)の配置。“MissingPlacement”と,次のいずれかで構成されるコンマ区切りのペアとして指定します。

  • “汽车”——欠損値の要素は,昇順では最後,降順では最初に配置されます。

  • “第一”——欠損値の要素は最初に配置されます。

  • “最后一次”——欠損値の要素は最後に配置されます。

要素の比較方法。“ComparisonMethod”と以下のいずれかで構成される,コンマ区切りペアとして指定します。

  • “汽车”- - - - - -一个が実数の場合は真正的(一个)によって,一个が複素数の場合はabs ()を基準にして一个を並べ替えます。

  • “真实”的- - - - - -一个が実数または複素数の場合に,真正的(一个)を基準にして一个を並べ替えます。一个の要素の実数部が等しい場合,图像放大(A)を使用して同順位のものを並べ替えます。

  • “abs”- - - - - -一个が実数または複素数の場合に,abs ()を基準にして一个を並べ替えます。一个の要素の大きさが等しい場合,区間(-ππ]で角(A)を使用して同順位のものを並べ替えます。

出力引数

すべて折りたたむ

並べ替えられた配列。ベクトル、行列または多次元配列として返されます。Bのサイズと型は一个と同じです。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符|字符串|细胞|分类|datetime|持续时间

並べ替えインデックス。ベクトル、行列または多次元配列として返されます。のサイズは一个と同じです。インデックスベクトルは排序が作用する次元に沿って方向付けされます。たとえば,一个が2行3列の行列である場合,[B,我]=排序(A, 2)一个の各行の要素を並べ替えます。出力は1行3列の行インデックスベクトルの集合で,一个の各行の並べ替えられた順を表しています。

入力に繰り返しの値が含まれている場合,並べ替えインデックスは,並べ替えの方向に関係なく,入力における元の順序のままになります。たとえば,A = [1 2 1 2]の場合,(Ba, Ia) =排序(A,“提升”)は並べ替えインデックスIa = [1 3 2 4]を返し,[Bd, Id] =排序(A,“下”)は並べ替えインデックスId = [2 4 1 3]を返します。

詳細

すべて折りたたむ

文字配列と字符串配列の並べ替え順序

MATLAB®はutf - 16文字エンコードスキームを使用して,文字をUnicode®として保存します。文字配列と字符串配列はutf - 16コードポイント順に基づいて並べ替えられます。ASCII文字でもある文字の場合,この順序では大文字が小文字よりも前になることを意味します。数字と一部の記号も文字より前にあります。

ヒント

  • 関数sortrowsは,行列または表入力の複数の列にわたるサブソート機能の柔軟性を高めます。

  • 関数排序と関係演算子は,複素数に対して異なる並べ替えを使用します。詳細については,関係演算を参照してください。

拡張機能

R2006aより前に導入