# How do I sort complex numbers?

Okay, so I posted something about sorting, and it was linked as a duplicate to This post However, I am having problems trying to sort a list that contains both real and complex numbers. I put them into one big list and used SortBy[] but that does not sort the complex numbers as I want them to. Any ideas? I can post what code I am using if that helps.

EDIT:: Data

A=
{{0.651301, 0.671298, -0.000107956 + 0.735512 I,
9.93642*10^-6 + 0.764605 I, 0.965926, 0.97048, 0.0344992 + 1.4214 I,
0.0028631 + 1.4505 I, -0.0626803 + 1.78014 I, -0.12443 + 1.98252 I,
0.167724 +
2.24691 I}, {{-6.79317*10^-6 - 2.8086*10^-6 I, -0.0000157028 +
0.0000511297 I, 0.000393492 + 0.0000998273 I,
0.000323404 - 0.00221263 I, -0.0140581 - 0.00161283 I,
0.00034936 + 0.0455525 I, 0.227164 - 6.59195*10^-17 I,
0.000350353 + 0.0494098 I, 0.0042655 - 0.0016156 I,
0.000351651 + 0.00161694 I, -2.50028*10^-6 -
0.0000297226 I, -0.0000277994 - 0.0000114935 I, -0.0000642597 +
0.000209235 I, 0.00161027 + 0.000408518 I,
0.00132345 - 0.00905464 I, -0.0575294 - 0.00660009 I,
0.00142967 + 0.186412 I, 0.929613 + 0. I, 0.00143373 + 0.202197 I,
0.0174555 - 0.00661145 I,
0.00143904 + 0.00661691 I, -0.0000102317 -
0.000121632 I}, {0.000325231 - 0.00225856 I, -0.0141806 -
0.00160866 I, 0.000361568 + 0.0454971 I,
0.220155 - 6.245*10^-17 I, 0.000362024 + 0.0494813 I,
0.00410192 - 0.00161389 I,
0.000363184 + 0.00165808 I, -6.77596*10^-6 - 0.000030037 I,
0.0000121624 + 0.0000262499 I, -1.0809*10^-6 + 2.11658*10^-8 I,
1.98638*10^-7 + 2.53517*10^-7 I,
0.00137179 - 0.00952634 I, -0.0598123 - 0.00678514 I,
0.00152505 + 0.191902 I, 0.92859 + 0. I, 0.00152698 + 0.208706 I,
0.0173014 - 0.0068072 I,
0.00153187 + 0.00699361 I, -0.0000285803 - 0.000126693 I,
0.0000512998 + 0.000110719 I, -4.55912*10^-6 + 8.92749*10^-8 I,
8.37833*10^-7 + 1.06931*10^-6 I}, {-0.00936005 - 0.00689504 I,
0.00194175 + 0.0457214 I, -0.0000294616 -
0.200724 I, -0.00204752 + 0.0455102 I,
0.00912273 - 0.00677289 I, -0.00206909 + 0.000712454 I,
0.000308104 + 0.000136869 I, -0.0000338275 - 0.0000413905 I,
6.69395*10^-8 + 6.60345*10^-6 I,
4.55605*10^-7 - 7.51471*10^-7 I, -8.81591*10^-8 + 3.57016*10^-8 I,
0.0318708 - 0.0432515 I, -0.211296 + 0.00894252 I,
0.927617 + 0. I, -0.210317 - 0.0094932 I,
0.0312938 + 0.042164 I, -0.0032911 - 0.0095625 I, -0.000632731 +
0.00142376 I,
0.000191303 - 0.000156301 I, -0.0000305169 + 3.04872*10^-7 I,
3.47251*10^-6 + 2.10602*10^-6 I, -1.6493*10^-7 -
4.07439*10^-7 I}, {-5.0264*10^-7 -
8.58797*10^-7 I, -2.37939*10^-7 + 7.30947*10^-6 I,
0.0000371583 - 0.0000443393 I, -0.000328693 + 0.00013847 I,
0.0021433 + 0.000752547 I, -0.00910293 - 0.00695052 I,
0.0021046 + 0.0453582 I,
2.50419*10^-6 - 0.192697 I, -0.00210251 + 0.0453522 I,
0.00910842 - 0.00696524 I, -0.00217144 + 0.000743651 I,
4.12576*10^-6 - 2.41481*10^-6 I, -0.0000351158 - 1.14264*10^-6 I,
0.000213015 + 0.000178511 I, -0.00066525 -
0.00157909 I, -0.00361522 + 0.0102968 I,
0.0333908 - 0.0437323 I, -0.217908 + 0.0101137 I,
0.925747 + 0. I, -0.217879 - 0.010098 I,
0.0334627 + 0.0437578 I, -0.00357275 -
0.0104319 I}, {-0.0000358944 + 0.000126095 I,
0.000744548 + 0.000168628 I,
0.000462218 - 0.00346567 I, -0.0160687 - 0.00154484 I,
0.000533786 + 0.0440688 I, 0.147403 + 6.93889*10^-17 I,
0.000538762 + 0.0497767 I, 0.00157728 - 0.00155399 I,
0.000527326 + 0.00215325 I, -0.000121227 - 0.0000164675 I,
0.0000226836 + 0.0000418986 I, -0.000217846 + 0.000765279 I,
0.00451873 + 0.00102342 I,
0.00280524 - 0.0210335 I, -0.0975223 - 0.00937576 I,
0.0032396 + 0.267458 I, 0.894604 + 0. I, 0.0032698 + 0.302099 I,
0.00957266 - 0.00943131 I,
0.00320039 + 0.0130683 I, -0.000735739 - 0.0000999426 I,
0.000137669 + 0.000254286 I}, {0.000740075 + 0.000166838 I,
0.000463177 - 0.00347749 I, -0.0160926 - 0.0015432 I,
0.000536526 + 0.0440383 I, 0.146592 - 1.38778*10^-17 I,
0.000541552 + 0.049773 I, 0.00153733 - 0.00155267 I,
0.000529806 + 0.00215943 I, -0.000123573 - 0.0000161104 I,
0.0000229325 + 0.0000423765 I, -4.68374*10^-6 + 1.27897*10^-6 I,
0.00451276 + 0.00101733 I,
0.00282432 - 0.0212047 I, -0.0981278 - 0.00940995 I,
0.00327157 + 0.268533 I, 0.893872 + 0. I, 0.00330223 + 0.303501 I,
0.0093742 - 0.00946775 I,
0.0032306 + 0.0131676 I, -0.000753512 - 0.0000982366 I,
0.000139836 + 0.0002584 I, -0.00002856 +
7.79878*10^-6 I}, {0.00919186 + 0.0428642 I,
0.00225897 - 0.0930717 I, -0.00582016 + 0.0395705 I,
0.00877203 - 0.00965772 I, -0.00354763 + 0.00153788 I,
0.000872782 + 0.000117415 I, -0.000154478 - 0.000120785 I,
0.0000131793 + 0.0000345226 I,
1.35683*10^-6 - 6.59455*10^-6 I, -7.61336*10^-7 + 8.03641*10^-7 I,
1.70839*10^-7 - 3.9198*10^-8 I, -0.380824 + 0.0913832 I,
0.831706 + 0. I, -0.354663 - 0.0434019 I,
0.0881538 + 0.0762489 I, -0.0145037 - 0.0313503 I, -0.00085944 +
0.0078202 I,
0.00104523 - 0.00140582 I, -0.000305462 + 0.000125187 I,
0.0000591896 + 0.0000106883 I, -7.34228*10^-6 - 6.62524*10^-6 I,
3.87106*10^-7 + 1.51725*10^-6 I}, {7.99461*10^-7 +
8.43966*10^-7 I, -1.30319*10^-6 - 6.8308*10^-6 I, -0.0000142133 +
0.0000348017 I,
0.000159864 - 0.000116815 I, -0.000870595 + 0.0000850061 I,
0.00342612 + 0.00169007 I, -0.00817676 - 0.00973414 I,
0.0032317 + 0.0383895 I,
0.000181951 - 0.0921798 I, -0.00259292 + 0.0392848 I,
0.00884829 - 0.0104629 I, -7.67732*10^-6 + 7.30127*10^-6 I,
0.0000622308 - 0.0000119998 I, -0.00031743 - 0.00012891 I,
0.0010675 + 0.00145486 I, -0.000790386 -
0.00793286 I, -0.0153412 + 0.0312552 I,
0.0885675 - 0.0746961 I, -0.349814 + 0.0301436 I,
0.840108 + 0. I, -0.358079 - 0.0229246 I,
0.0955152 + 0.0804529 I}, {-0.00253399 - 0.0719661 I,
0.0113022 + 0.0475596 I,
0.00389645 - 0.0167886 I, -0.00429156 + 0.00510902 I,
0.00166148 - 0.000734737 I, -0.000470727 - 0.0000705509 I,
0.0000855359 + 0.000066461 I, -7.33604*10^-6 -
0.0000215169 I, -9.97209*10^-7 + 4.33961*10^-6 I,
5.86732*10^-7 - 5.52976*10^-7 I, -1.38467*10^-7 + 2.36119*10^-8 I,
0.805934 + 0. I, -0.536402 + 0.107684 I,
0.186245 + 0.0501935 I, -0.0554538 - 0.0500129 I,
0.00756365 + 0.0188729 I,
0.000974495 - 0.00523727 I, -0.000777049 + 0.000930539 I,
0.000243554 - 0.0000735791 I, -0.0000481455 - 0.0000128628 I,
5.95393*10^-6 + 6.78033*10^-6 I, -2.09565*10^-7 -
1.55805*10^-6 I}, {-7.14387*10^-7 - 3.11508*10^-7 I,
2.34287*10^-6 + 3.33967*10^-6 I, -1.70002*10^-6 -
0.0000200966 I, -0.0000399888 + 0.0000837606 I,
0.000320663 - 0.000228999 I, -0.00148637 + 0.000164631 I,
0.00482644 + 0.00184217 I, -0.00988419 - 0.0106442 I,
0.0104973 + 0.0343516 I, -0.00368235 - 0.0586699 I, -0.0147028 +
0.0342975 I,
4.43882*10^-6 - 8.65524*10^-6 I, -0.0000434324 + 0.000026573 I,
0.000251662 - 5.46439*10^-6 I, -0.0010121 - 0.000563607 I,
0.00260183 + 0.00417338 I, -0.000888655 -
0.0186437 I, -0.0267204 + 0.0586804 I,
0.140318 - 0.114801 I, -0.436109 + 0.103903 I,
0.733702 + 0. I, -0.415733 - 0.20996 I}, {3.70775*10^-7 +
3.44736*10^-7 I, -5.72806*10^-7 -
2.43401*10^-6 I, -3.97703*10^-6 + 0.0000112541 I,
0.0000405196 - 0.0000326462 I, -0.000214321 + 0.0000263692 I,
0.000738563 + 0.000288755 I, -0.00162487 - 0.00211852 I,
0.00215028 + 0.00773783 I,
0.00384473 - 0.0174451 I, -0.0209518 + 0.0395755 I,
0.00377232 - 0.0505358 I, -4.47615*10^-6 + 5.59781*10^-6 I,
0.0000337592 - 0.0000106518 I, -0.000163074 - 0.0000442868 I,
0.000503592 + 0.000537642 I, -0.000598135 -
0.00299795 I, -0.00329824 + 0.0107312 I,
0.0281964 - 0.0251721 I, -0.106975 + 0.0385116 I,
0.250337 + 0.0358946 I, -0.580797 - 0.254086 I, 0.717427 + 0. I}}}


I want A[[1]] to be {.9704,.9659,.67129,.6513,-.000107+.73i,.000000994+.76i,.0344+1.42i,....}

Sorry For the mess of data. I am trying to sort eigenvalues and keep the corresponding eigenvector with them

• how to sort complex numbers? dictionary order? or by Real part? we don't know, need one more concrete question. – HyperGroups May 29 '13 at 15:20
• So I want to sort the Real parts in descending order, and then sort so that the imaginary parts are ascending – yankeefan11 May 29 '13 at 15:21
• Please try to put yourself in an answerer's shoes. Both this one and your latest question simply can't be answered without more information. Think about this before you post and make sure your questions are clear. "but that does not sort the complex numbers as I want them to" <-- how should we know how you want them to be sorted? There's no standard way to sort complex numbers. If you re-read your question, it should be obvious what's wrong with it. – Szabolcs May 30 '13 at 13:56

SortBy[{1 + I, 5 + I, what + I, 3 + 4 I, 5}, Re]
{1+I,3+4 I,5,5+I,I+what}
SortBy[{1 + I, 5 + I, what + I, 3 + 4 I, 5}, Re] // Reverse
{I+what,5+I,5,3+4 I,1+I}
SortBy[{1+I,5+I,what+I,3+4I,5}, Im]
{5,1+I,5+I,3+4 I,I+what}


hehe! A=Table[Reverse[Select[A[[i]],Element[#,Reals]&]] ~Join~ SortBy[Select[A[[i]],!Element[#,Reals]&],Im],{i,Length@A}];

In[47]:= A[[1]]

Out[47]= {0.651301,0.671298,0.965926,0.97048,-0.000107956+0.735512 I,9.93642*10^-6+0.764605 I,0.0344992 +1.4214 I,0.0028631 +1.4505 I,-0.0626803+1.78014 I,-0.12443+1.98252 I,0.167724 +2.24691 I}

• I am trying to do it for an arbitraryset of values. If I have lets say a list named list, that contains: 5, 1+2i, 4, -2 +6i, will that get them in the order 5,4,1+2i,-2+6i ? – yankeefan11 May 29 '13 at 15:42
• I don't know, you can post some sample data. – HyperGroups May 29 '13 at 15:44
• Sorry for the mess of data I edited in – yankeefan11 May 29 '13 at 15:51
• one way is sort reals and complex seperately and Join them – HyperGroups May 29 '13 at 16:04
• Thank you! This helped a bunch! – yankeefan11 May 29 '13 at 17:29