I am very new to Mathematica. I have code written using for loops. I want to rewrite it using Map
/Thread
but I am not sure how to do it.
My code takes the set A
, say
A = {{1, 2, 3, 1, 2, 3}, {1, 1, 2, 2, 3, 3}}
Then it insert a arbitrary character(say $a$) to every possible positions of given element in the set A
. So we get
{{a, 1, 2, 3, 1, 2, 3}, {1, a, 2, 3, 1, 2, 3}, ..., {a, 1, 1, 2, 2, 3, 3}, ..., {1, 1, 2, 2, 3, 3, a}}
Then it inserts the same character again into resulting elements in following manner
{{a, a, 1, 2, 3, 1, 2, 3}, {a, 1, a, 2, 3, 1, 2, 3}, {a, 1, 2, a, 3, 1, 2, 3}, ...., {1, 1 , 2, 2, 3, 3, a}}
This question come from Knot Theory-Chord Diagram
My program using for loops is follows.
A = {{1, 2, 3, 1, 2, 3}, {1, 1, 2, 2, 3, 3}};
kk = Length[A[[1]]]/2 + 1;
B = {};
For[m = 1, m < Length[A] + 1, m++,
Diag1 = A[[m]];
For[j = 1, j < (2*kk), j++,
Diag2 = Insert[Diag1, "a", j];
For[i = 1 + j, i < (2*kk) + 1, i++,
Diag3 = Insert[Diag2, "a", i];
B = AppendTo[B, Diag3];
];
];
];
This is what I tried to do with element 2.
f[x_] := Insert[A[[2]], "a", x];
B = Map[f, Range[7]]];
But I don't know how to put variable A[[i]]
instead of A[[2]]
and also how to insert other end of $a$ to this result using map.
Any comment really appreciated.
ReplaceList
useful:ReplaceList[ {1, 2, 3, 1, 2, 3}, {x___, y___} :> {x, a, y}]
$\endgroup$ReplaceList
only to see you got there an hour before me. I'm still going to post an answer since you did not. $\endgroup$