Re: vector ordering problem
- To: mathgroup at smc.vnet.net
- Subject: [mg126703] Re: vector ordering problem
- From: Bob Hanlon <hanlonr357 at gmail.com>
- Date: Fri, 1 Jun 2012 05:16:59 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201205310651.CAA27219@smc.vnet.net>
In Mathematica you cannot use _ in names vector1 = {32, 4, 28, 11, 20}; vector2 = {78, 12, 95, 14, 35}; positionVector1 = Ordering[vector1] {2, 4, 5, 3, 1} Note that this is not what you presented and vector2[[positionVector1]] {12, 14, 35, 95, 78} A way to obtain your requested result positionVector2 = With[{v = Sort[vector1]}, Position[v, #] & /@ vector1 // Flatten] {5, 1, 4, 2, 3} vector2[[positionVector2]] {35, 78, 14, 12, 95} Bob Hanlon On Thu, May 31, 2012 at 2:51 AM, Marco Lazzaretti <marco.lazzaretti82 at gmail.com> wrote: > Hi, > I have these two vectors, vector1 and vector2. > I need to have vector2 sorted by a positions vector, given by a > vector1. > e.g. > vector1 ={32,4,28,11,20} > position_vector1= Ordering[vector1] > position_vector1 = {5,1,4,2,3} > > vector2 = {78,12,95,14,35} > > requested output > {35,78,14,12,95} > > that is, I have this position vector, as an output from another > calculation; then i need my input vector to be sorted as the position > vector says. > Obviously, my real input vector is quite bigger so i can't sort it > manually... I hope the small example can explain my problem better > than my words... >