Skip to main content
8 of 12
added 37 characters in body
254
  • 13
  • 4

Sorting each column in a list contained in an association

I have an Association which contains three arrays 200x1000x2.
Each row m of a matrix denotes a different set of parameters, while each column n contains the outcomes of the function for a specific value of x. Each elements is {x,f_m(x)}.

I want to sort each column in ascending order, so that the first row will now contains the lowest values, while the last row will contain the highest. Instead, the elements in the row should not change position, so that all the elements in a column keep having the same value of x.
The rows will then be used to create a function that represents the envelope of the different outcomes of a Monte Carlo method.

I tried using Sort, together with Transpose, but the result is messed up.

Data Example with three 4x3x2 arrays:

<| 1-> {{{0.1,2.1},{0.2,0.7},{0.5,-3.5}},
{{0.1,4.2},{0.2,5.5},{0.5,3.1}},
{{0.1,5.6},{0.2,-6.4},{0.5,0.2}},
{{0.1,7.4},{0.2,7.2},{0.5,-8.2}}},
2-> {{{0.1,4.5},{0.2,3.5},{0.5,5.6}},
{{0.1,-3.1},{0.2,1.4},{0.5,-7.4}},
{{0.1,1.3},{0.2,3.4},{0.5,4.27}},
{{0.1,-3.6},{0.2,-2.5},{0.5,0.2}}},
3-> {{{0.1,3.6},{0.2,7.2},{0.5,9.1}},
{{0.1,-1.4},{0.2,1.3},{0.5,5.4}},
{{0.1,2.3},{0.2,3.4},{0.5,2.4}},
{{0.1,-3.7},{0.2,5.6},{0.5,-6.2}}}|>
254
  • 13
  • 4