Re: small question

• To: mathgroup at smc.vnet.net
• Subject: [mg74880] Re: small question
• From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
• Date: Tue, 10 Apr 2007 05:11:11 -0400 (EDT)
• Organization: The Open University, Milton Keynes, UK
• References: <evd3or\$5fo\$1@smc.vnet.net>

```KFUPM wrote:
> Dear Group
>
> I have two variables multiplied by each other
>
> N1 x    (N1 times x) which is a part of an equation.
>
> What i want to do is to replace  this multiplication by Nx1 (one
> variable) and i want to do this automatically using Mathematica,
> because i have a huge number of such terms, for example, N2 y, N3 z,
> N4 x, N5 y.... etc.
>
> Thereofore, i need to get this transformation:
>
> N1 x ------> Nx1
> N2 y ------> Ny2
> N3 z ------> Nz3
> and so on.
>
> Please notice that the letter N doesn't change only numbers(1,2,...)
> and (x,y,z....) do.
>
>
> Any help in this regard is highly appreciated.

You could use a transformation rule. In the following expression, you
just have to provide the list of the variables not in the format N1, N2,
etc.

expr = N1*x + N2*x + N3*x + N1*y + N2*y + N3*y +
N1*z + N2*z + N3*z;

vars = {x, y, z};

expr /. (n_)*(x_ /; MemberQ[vars, x]) :>
ToExpression[StringInsert[ToString[n], ToString[x], 2]]

Nx1 + Nx2 + Nx3 + Ny1 + Ny2 + Ny3 + Nz1 + Nz2 + Nz3

Regards,
Jean-Marc

```

• Prev by Date: Re: Enquirey
• Next by Date: RootSum 2
• Previous by thread: small question
• Next by thread: Re: small question