MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: ListDimension function

  • To: mathgroup at smc.vnet.net
  • Subject: [mg72584] Re: ListDimension function
  • From: Peter Pein <petsie at dordos.net>
  • Date: Thu, 11 Jan 2007 02:52:31 -0500 (EST)
  • References: <eo25ue$as5$1@smc.vnet.net>

carlos at colorado.edu schrieb:
> Hi - I need a short function ListDimension that
> given a list returns its "brace dimensionality" =
> max number of brace levels to reach deepest entry.
> Examples
> 
>    List         ListDimension
>    a+b                   0
>    {1,2,x*y}             1
>    {1,2,{3,0,1}}         2
>    {{},{},{}}            2
>    {{},{{1,2}},a}        3
> 
> Built-in functions dont seem to be of help.
> Dimensions is restricted to matrix or tensor type of lists.
> Depth (minus 1) doesnt help as it is entry type dependent:
> 
>    Depth[{1,2,3}] -> 2
>    Depth[{1,2,3+a}] -> 3
>    Depth[{1,2,3+a+Sqrt[x+y]}] -> 5
> 
> For the above three, ListDimension=1.
> 

Hi Carlos,

with the help of Position[], it is quite easy:

In[1]:=
ListDimension = Max @@ (Length /@ Position[#1, List]) /. {} -> {0} & ;
ListDimension/@{
    a+b,
    {1,2,x y},
    {1,2,{3,0,1}},
    {{},{},{}},
    {{},{{1,2}},a}
    }

Out[2]=
{0,1,2,2,3}

In[3]:=
ListDimension/@{
    {1,2,3},
    {1,2,3+a},
    {1,2,3+a+Sqrt[x+y]}
    }

Out[3]=
{1,1,1}


Peter


  • Prev by Date: RE: ListDimension function
  • Next by Date: Re: [TS 34965]--Re:large input to NMinimize causes NMinimize:"bcons" along with Less:nord ... and I don't think it should
  • Previous by thread: RE: ListDimension function
  • Next by thread: ListDimension function