What is the meaning of 'internal sorting rules' in 'sort' in Symbolic Math Toolbox?

1 view (last 30 days)
A = [factorial(sym(1001)), exp(sym(1)) + factorial(sym(1000))]
[r,s] = sort(A)
Obviously, A(1) > A(2). However, the output is
r =
[factorial(1001), exp(1) + factorial(1000)]
s =
1 2
which is quite confusing.
I notice in sort, it is mentioned that
  • If X contains symbolic irrational numbers, expressions, and functions, comparing and sorting the elements can be computationally complex. Therefore, sort uses internal sorting rules to optimize its performance.
What is the meaning of 'internal sorting rules' ?
Thank you very much!

Answers (1)

David Hill
David Hill on 6 May 2022
A = [factorial(sym(1001)), exp(sym(1)) + factorial(sym(1000))]
[~,s] = sort(vpa(A));%vpa the symbolic before sorting.
A=A(s);%sorted symbolic
  1 Comment
Songbai Jin
Songbai Jin on 6 May 2022
Thank you for your answer!
But my original idea is to prevent a 'vpa' method.
Is it possible to sort sym variables directly?
Thank you for your answering anyway!

Sign in to comment.

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!