Re: returning a variable's name, rather than the variable's contents
- To: mathgroup at smc.vnet.net
- Subject: [mg68461] Re: returning a variable's name, rather than the variable's contents
- From: Peter Pein <petsie at dordos.net>
- Date: Sun, 6 Aug 2006 02:56:32 -0400 (EDT)
- References: <eauvns$17c$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Michael Stern schrieb: > There must be a simple way to do this but it eludes me. Take for example the > following: > > > > In[2]:= a=1;b=2;c=3; > > > > In[3]:= Max[a,b,c] > > > > Out[3]= 3 > > > > What would I do if I wanted Out[3] to equal "c" ? > > > > Thanks in advance, > > > > Michael Stern > > > Hi Michael, I'm not familiar with the string functions in Mathematica. Therefore a much simpler approach will exist; but this one works: In[1]:= Attributes[nameOfMax] := {HoldAll}; nameOfMax[l__] := Module[{ls = StringJoin[", ", StringDrop[StringDrop[ToString[Unevaluated[l]], 9], -1], ","], sp}, sp = First /@ StringPosition[ls, ","]; StringTake[ls, sp[[{#1, #1 + 1}]] + {2, -1}]& [Last[Ordering[{l}]]]] In[3]:= {a, b, c, huge} = {1, 2, 3, 10^10}; In[4]:= nameOfMax[a, b, c] Out[4]= "c" In[5]:= nameOfMax[c, huge, a, b] Out[5]= "huge" HTH, Peter
- Follow-Ups:
- Re: Re: returning a variable's name, rather than the variable's contents
- From: Andrzej Kozlowski <akoz@mimuw.edu.pl>
- Re: Re: returning a variable's name, rather than the variable's contents