Re: Debracketing array symbols
- To: mathgroup at smc.vnet.net
- Subject: [mg92335] Re: Debracketing array symbols
- From: "sarah.dervilliers0058" <sarah.dervilliers0058 at orange.fr>
- Date: Sat, 27 Sep 2008 22:22:49 -0400 (EDT)
- References: <gavqna$eon$1@smc.vnet.net>
si tu veux <carlos at colorado.edu> a écrit dans le message de news: gavqna$eon$1 at smc.vnet.net... > Hi, > > For a class project I generate 1D and 2D arrays of arbitrary size with > entries <letters>[i] and <letters>[i,j] that I need then to convert > to <letter>i and <letter>ij for export to other languages that do not > allow brackets in symbol names. E.g. > > 1D: {A[1],A[2],A[3],A[4]} -> {A1,A2,A3,A4} > > 2D: {{W[1,1],W[1,2]},{W[2,1],W[2,2]}} -> {{W11,W12},{W21,W22}} > > Question: would this be the simplest way to do it? > > DebracketArrayEntries[Wm_]:=Module[{dim,rep,i,j,n,m,s,Wr}, > rep={"["->"","]"->"",","->""," "->""}; Wr=Wm; > dim=Length[Dimensions[Wm]]; > If [dim==1,n=Length[Wm]; Print["n=",n]; > For [i=1,i<=n,i++, s=ToString[Wm[[i]]]; > Wr=Wr/.Wm[[i]]->Symbol[StringReplace[s,rep]] ]]; > If [dim==2,{n,m}=Dimensions[Wm]; > For [i=1,i<=n,i++, For[j=1,j<=m,j++, s=ToString[Wm[[i,j]]]; > Wr=Wr/.Wm[[i,j]]->Symbol[StringReplace[s,rep]] ]]]; > Return[Wr]]; > > The procedural style is to simplify conversion to C++. >