# [ncl-talk] Sorting an array depending on first column

Dennis Shea shea at ucar.edu
Tue Dec 6 06:20:55 MST 2016

```Similar to Karin's but use 'dim_pqsort_n'
http://www.ncl.ucar.edu/Document/Functions/Built-in/dim_pqsort_n.shtml

Ain = (/ (/2,1,3/), (/6,2,4/), (/3,1,5/), (/1,7,4/) /)

i   = dim_pqsort_n(Ain(:,0), 1, 0)
print(i)

dimA = dimsizes(Ain)
nrow = dimA(0)

Aout = Ain
do nr= 0,nrow-1
Aout(nr,:) = Ain(i(nr),:)
end do

On Tue, Dec 6, 2016 at 3:30 AM, Karin Meier-Fleischer <
meier-fleischer at dkrz.de> wrote:

> Hi Abhik,
>
> you can use NCLs function *dim_pqsort *to sort the array by the first
> column.
>
> begin
>   Ain  = (/ (/2,1,3/), (/6,2,4/), (/3,1,5/), (/1,7,4/) /)
>
> ;-- criteria is to sort the array Ain by increasing of the first column
>   cols_0 =  Ain(:,0)                        ;-- get first columns of each
> row
>   i0     =  dim_pqsort(cols_0,2)            ;-- sorting by increasing and
> overwrite cols_0 return sorted indices i0
>
> ;-- resort Ain
>   Aout   =  Ain(i0,:)                       ;-- use sorted indices of
> first column to sort the complete array
>
> ;-- print the new array in a nicer way
>   opt       =  True
>   opt at title = "Sort array by first column of each row"
>   write_matrix(Aout,"3I4",opt)
>
> end
>
> This will print Aout
>
>  Sort array by first column of each row
>
>    1   7   4
>    2   1   3
>    3   1   5
>    6   2   4
>
> Bye,
> Karin
>
> Am 06.12.16 um 06:59 schrieb Abhik Santra:
>
> Hi NCL users
>
> How can I sort an array based on its first column elements?
> For example, if
>
> Ain = (/ (/2,1,3/), (/6,2,4/), (/3,1,5/), (/1,7,4/) /)
>
> then how can I get
>
> Aout = (/ (/1,7,4/), (/2,1,3/), (/3,1,5/), (/6,2,4/) /) ?
>
> Any help would be greatly appreciated.
>
> Thanks,
> Abhik
>
> ****************************************
> Abhik Santra
> Postdoctoral Research Fellow
> Australian Bureau of Meteorology,
> Melbourne, Australia
> ****************************************
>
> _______________________________________________
> ncl-talk mailing listncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20161206/e5db72e5/attachment.html
```