transform Matrix and List elements toreplacement Rules
- To: mathgroup at smc.vnet.net
- Subject: [mg113968] transform Matrix and List elements toreplacement Rules
- From: leigh pascoe <leigh at evry.inserm.fr>
- Date: Fri, 19 Nov 2010 05:11:46 -0500 (EST)
I have a matrix that looks like this: matrix= {{1, 110, 120, 22, 64, 26, 24, 36, 390, 360, 1152}, {4, 21, 16, 30, 47, 23, 124, 127, 397, 367, 1152}, {2, 100, 103, 44, 71, 26, 81, 60, 302, 365, 1152}, {3, 110, 165, 13, 55, 37, 27, 23, 363, 359, 1152}} I would like to sort it by the first element, delete the first and the last 3 columns and transform the remaining values to Rules to give: {{a -> 110, b -> 120, c -> 22, d -> 64, e -> 26, f -> 24, g -> 36}, {a -> 100, b -> 103, c -> 44, d -> 71, e -> 26, f -> 81, g -> 60}, {a -> 110, b -> 165, c -> 13, d -> 55, e -> 37, f -> 27, g -> 23}, {a -> 21, b -> 16, c -> 30, d -> 47, e -> 23, f -> 124, g -> 127}} The idea is to then evaluate a formula using these sets of substitutions for a,b,..g. The actual matrix is of course larger than this one. There is no problem to sort and take the relevant parts sorted=Sort[matrix, #2[[1]] >= #1[[1]] &] data=sorted[[1;;4,2;;8]] However I can't find a way to transform the resulting List elements to replacement rules. I have tried creating a matrix with just the LHS of the rules: rules= Table["{a->,b->,c->,d->,e->,f->,g->}", {4}]; and then to StringJoin the elements of matrix and rules. However I can't get this to work. I also tried generating the elements of the replacement matrix in a Perl program and importing it into Mathematica. This seemed to give the correct matrix, however it wouldn't actually work for the substitutions. It took me some time to realise that the matrix was in fact: data//FullForm List[List["a->110", "b->120", "c->22", "d->64", "e->26", "f->24", "g->36"], List["a->0", "b->0", "c->0", "d->0", "e->2", "f->33", "g->63"], List["a->0", "b->0", "c->2", "d->12", "e->5", "f->77", "g->86"], List["a->113", "b->110", "c->27", "d->62", "e->18", "f->34", "g->39"]] i.e. there are unwanted parentheses (that are not evident when FullForm is not specified). Can anyone help me to get the form that I want? Thanks. LP