組み込み関数の中身が知りたい

25 views (last 30 days)
hirokazu machida
hirokazu machida on 7 Sep 2021
MATLAB内で使用​されている組み込み関​数(私自身知りたいの​は"sort"です)​の中身のコードがどの​ようになっているかを​見るためにはどのよう​にすればよいでしょう​か.ちなみに現在so​rt関数を開くとすべ​て説明文(コメントア​ウト)で,どのように​構築されているかは記​載されておりません.​下記に示しておきます​.
%SORT Sort in ascending or descending order.
% B = SORT(A) sorts in ascending order.
% The sorted output B has the same type and size as A:
% - For vectors, SORT(A) sorts the elements of A in ascending order.
% - For matrices, SORT(A) sorts each column of A in ascending order.
% - For N-D arrays, SORT(A) sorts along the first non-singleton dimension.
%
% B = SORT(A,DIM) also specifies a dimension DIM to sort along.
%
% B = SORT(A,DIRECTION) and B = SORT(A,DIM,DIRECTION) also specify the
% sort direction. DIRECTION must be:
% 'ascend' - (default) Sorts in ascending order.
% 'descend' - Sorts in descending order.
%
% B = SORT(A,...,'MissingPlacement',M) also specifies where to place the
% missing elements (NaN/NaT/<undefined>/<missing>) of A. M must be:
% 'auto' - (default) Places missing elements last for ascending sort
% and first for descending sort.
% 'first' - Places missing elements first.
% 'last' - Places missing elements last.
%
% B = SORT(A,...,'ComparisonMethod',C) specifies how to sort complex
% numbers. The comparison method C must be:
% 'auto' - (default) Sorts real numbers according to 'real', and
% complex numbers according to 'abs'.
% 'real' - Sorts according to REAL(A). Elements with equal real parts
% are then sorted by IMAG(A).
% 'abs' - Sorts according to ABS(A). Elements with equal magnitudes
% are then sorted by ANGLE(A).
%
% [B,I] = SORT(A,...) also returns a sort index I which specifies how the
% elements of A were rearranged to obtain the sorted output B:
% - If A is a vector, then B = A(I).
% - If A is an m-by-n matrix and DIM = 1, then
% for j = 1:n, B(:,j) = A(I(:,j),j); end
%
% The sort ordering is stable. Namely, when more than one element has the
% same value, the order of the equal elements is preserved in the sorted
% output B and the indices I relating to equal elements are ascending.
%
% Examples:
% % Sort a vector in ascending order
% sort([0 3 1 0 2 0 1 6])
% % Sort each column or row of a matrix
% A = [3 7 5; 0 4 2]
% B1 = sort(A,1) % sort each column
% B2 = sort(A,2) % sort each row
% % Sort complex numbers according to their real part
% A = [1+1j ; 1-1j ; -2-2j ; 0 ; -2+2j]
% B = sort(A,'ComparisonMethod','real')
%
% See also ISSORTED, SORTROWS, MIN, MAX, MINK, MAXK.
% Copyright 1984-2017 The MathWorks, Inc.
% Built-in function.

Accepted Answer

Hernia Baby
Hernia Baby on 7 Sep 2021
似たような質問 でもあるのですが、
既にビルトされたものなので、おそらく中身を見ることはできません…
Mathwarks社員になるか 交渉 …になるみたいです
ソートというアルゴリズム自体に興味ある場合は
図で分かりやすく紹介されていますので、ご参照ください
  2 Comments
Hernia Baby
Hernia Baby on 7 Sep 2021
公式ではないですが… File Exchange にもあるにはあったりするので、興味あれば探してみてください
hirokazu machida
hirokazu machida on 8 Sep 2021
回答ありがとうございます.
やはり見る方法はありませんよね..
File Exchangeも見させていただきました.対象がcellstrなのでdoubleに変更しながら解読していきたいと思います.

Sign in to comment.

More Answers (1)

Masahiro Horie
Masahiro Horie on 7 Sep 2021
Octaveのsort関数を調べると参考になるかもしれません。
  1 Comment
hirokazu machida
hirokazu machida on 8 Sep 2021
回答ありがとうございます.
早速Octaveをダウンロードし,sort関数を調べてみたのですが,やはり組み込み関数となっているため,確認することができませんでした.

Sign in to comment.

Categories

Find more on 行列および配列 in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!