Re: when dimension increases
- To: mathgroup at smc.vnet.net
- Subject: [mg67594] Re: when dimension increases
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Sat, 1 Jul 2006 05:12:46 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <e82n4s$qvr$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Arkadiusz Majka wrote:
> Hi,
>
> Imagine that I want to sort (or do anything else) a list
>
> list={5,2,8,3}
>
> So I use Sort[list]
>
> Next I add next dimension and obtain a list listNew=Table[list,{5}]
>
> In order to sort all sublists of it it I use Map[Sort, listNew]
>
> Now I add another more dimension listNew1=Table[list, {3},{5}]
>
> I can again sort all sublists of it using combination of Table and Map.
>
> The question is the following:
>
> How can I deal with expresions of unknown a priori dimension? For
> example what is the most elegant (clear and fast) method of sorting all
> sublists of multidimensional expresion? I would like to avoid Table and
> unclear expresions with many "Maps" (one embeded in another).
>
> Thanks for your help,
>
> Arek
>
Hi Arek,
Use level specification in the Map function [1]. For instance
In[1]:=
listNew4 = Table[Random[Integer, {0, 10}], {5}, {3},
{5}, {2}, {4}, {7}];
In[2]:=
(Map[Sort, #1, Depth[#1] - 2] & )@listNew4;
The expression Depth[#1] - 2 returns the maximum number of indices one
needs to reach all the non-atomic expressions. See [2] and [3] for
detailed explanations on levels in expressions and level specifications
and [4] for the built-in function *Depth*.
Best regards,
Jean-Marc
[1] http://documents.wolfram.com/mathematica/functions/Map
[2] http://documents.wolfram.com/mathematica/book/section-2.1.7
[3] http://documents.wolfram.com/mathematica/book/section-A.3.6
[4] http://documents.wolfram.com/mathematica/functions/Depth