Part


Name:
Part - returns a sub-array of an array
Synopsis:
array1 array2 Part -> array3  
Examples:
 


[ [3 5 6 9] [11 4 7 2] [-9 1 8 10] ] [ [1 3] [2 3] ] Part --> [[5 6] [1 8]]
[ [3 [-12 -19] 6 9] [11 4 7 2] [-9 1 8 10] ] [ 1 2 2] Part --> -19
[3 4 5 6 7] [-2] Part --> 6
[3 [-9 -12] 5 6 7] [2] Part --> [-9 -12]
[3 [-9 -12] 5 6 7] [2 2] Part --> -12
[3 [-9 -12] 5 6 7] [[2 3]] Part --> [[-9 -12] 5]
[3 [-9 -12] 5 6 7] [[2 3 2]] Part --> [[-9 -12] 5 [-9 -12]]
[ [3 5 6 9] [11 4 7 2] [-9 1 8 10] ] [ 1 [] ] Part --> []
[ [3 5 6 9] [11 4 7 2] [-9 1 8 10] ] [ [] 1 ] Part --> []
[3 [5 -12] 6 9] [ [ 2 ] ] Part --> [[5 -12]]
[3 [5 -12] 6 9] [ [ 2 ] 2] Part --> [-12]
[ [3 5 6 9] [11 4 7 2] [-9 1 8 10] ] [ /All [3 2] ] Part --> [[6 5] [7 4] [8 1]]

Description:
 
Part returns a sub-array of array1 specified by
array2. This function is an implementation of
Mathematica's Part function. It can also be used
to rearrange or copy parts of array1. Note,
Mathematica-style functions in SLI use Mathematica
index notation.
Parameters:
 
array1 is an arbitrarily shaped array. In particular
it does not need to be rectangular.

array2 is an array [i,j, ...] where the i,j specify the
selected elements on each level. Any i,j can itself be
an array [i1,i2,....] specifying a list of elements on
that level. When i is the literal /All, all elements on
the corresponding level are returned. The first element
on each level has index 1. Indices can also be specified
counting from the end of the array, in this case the last
element has index -1. Positive and neative indices can
arbitrarily be intermixed.

Alternatives: Function Part_a (undocumented) -> behaviour and
synopsis are the same.

Bugs:
 
Remarks:
 
Literal /All plays the role of the index specifier ':'
in Matlab when used without arguments. Note, that
Matlab in addition provides specifier 'end'.
This is not necessary in the formalism of Mathematica
because indices counting from the end of the array can be
expressed by negative values.
References:
 
[1] The Mathematica Book V4.0 "Part"
Author:
Diesmann  
FirstVersion:
29.9.1999  

SeeAlso: Source:
/home/graber/work-nest/nest-git/nest-simulator/lib/sli/mathematica.sli