Re: Debracketing array symbols

• To: mathgroup at smc.vnet.net
• Subject: [mg92081] Re: Debracketing array symbols
• From: dh <dh at metrohm.ch>
• Date: Fri, 19 Sep 2008 05:56:15 -0400 (EDT)
• References: <gavqna\$eon\$1@smc.vnet.net>

```
Hi carlos,

you could e.g. try:

{A[1],A[2],A[3],A[4]}/.x_[y_]:>Symbol[ToString[x]<>ToString[y]]

hope this helps, Daniel

> 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++.

>

--

Daniel Huber

Metrohm Ltd.

Oberdorfstr. 68

CH-9100 Herisau

Tel. +41 71 353 8585, Fax +41 71 353 8907

E-Mail:<mailto:dh at metrohm.com>

Internet:<http://www.metrohm.com>

```

• Prev by Date: Re: Apparent error integrating product of DiracDelta's
• Next by Date: the graphic of a function
• Previous by thread: Re: Debracketing array symbols
• Next by thread: Re: Debracketing array symbols