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

Karin Meier-Fleischer meier-fleischer at dkrz.de
Tue Dec 6 03:30:03 MST 2016


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_0return 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 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/39c5ad24/attachment.html 


More information about the ncl-talk mailing list