Re: Re: Function to handle array with variable _number_ of dimensions?
- To: mathgroup at smc.vnet.net
- Subject: [mg58535] Re: [mg58519] Re: Function to handle array with variable _number_ of dimensions?
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Wed, 6 Jul 2005 03:11:19 -0400 (EDT)
- References: <dad7t1$36$1@smc.vnet.net> <200507050852.EAA07201@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Paul Abbott wrote:
> In article <dad7t1$36$1 at smc.vnet.net>, Joe Christy <joe at eshu.net>
> wrote:
>
>
>>I'd like to write a function that takes two integer arguments, P and Q
>>say, and then returns a value calculated from the P x P x ... x P (Q
>>factors) array, whose entries depend on both P and Q. My first impulse
>>is to try and iterate over the array, but I don't see how to generate a
>> non-fixed number of iteration variables.
>>
>>Does anyone have a suggestion of a good way to do this, short of writing
>>a a distinct variant function for each possible value of Q?
>
>
> I'm not exactly sure what you are trying to do, but I would have a look
> at Outer and Tuples (in 5.1). Also have a look at the Advanced
> Documentation for these functions in the Help Browser.
>
> Cheers,
> Paul
>
These are probably the best approaches. If explicit iteration is for
some reason really required, then you can generate the indexing
programmatically as below.
arrayIndices[pp_,qq_] := Module[
{indices=Array[index,qq]},
Apply[Sequence,Map[{#,pp}&, indices]]
]
Example:
In[2]:= arrayIndices[3,4]
Out[2]= Sequence[{index[1], 3}, {index[2], 3},
{index[3], 3}, {index[4], 3}]
It is not hard to modify to have later index bounds depend on earlier
ones, etc. But if your index requirements are tensorial that is, no such
dependencies), then the functionality offered by Outer and relatives is
almost certainly going to be better for your purposes than generating
and using an explicit set as above.
Daniel Lichtblau
Wolfram Research
- References:
- Re: Function to handle array with variable _number_ of dimensions?
- From: Paul Abbott <paul@physics.uwa.edu.au>
- Re: Function to handle array with variable _number_ of dimensions?