copy - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.
Our website is currently undergoing maintenance, which may result in occasional errors while browsing. We apologize for any inconvenience this may cause and are working swiftly to restore full functionality. Thank you for your patience.

Online Help

All Products    Maple    MapleSim


copy

create a duplicate table, rtable, or module

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

copy( a )

copy( a , deep)

Parameters

a

-

any expression

Description

• 

The purpose of the copy function is to create a duplicate table, rtable, or record which can be altered without changing the original table, rtable, or record.  If a is not a table, rtable, or record, and a deep copy is not requested, a is returned.

• 

This functionality is necessary since the statements s := table(); t := s; leave both names s and t evaluating to the same table structure.  Hence, unlike other Maple data structures, assignments made via one of the names affect the values associated with the other name as well.

• 

Note that copy is not recursive.  This means that if a is a table of tables, the table data structure for a is copied but the table structures for the entries of a are not copied. To obtain a full recursive copy where all contents that are also mutable structures are copied, or to obtain a copy of a module, use the deep option.

• 

For an rtable, copy preserves rtable options and indexing functions, except for the readonly option, which is not set, and the source_rtable attribute.

Examples

s1x

s1x

(1)

ts

ts

(2)

t1y

t1y

(3)

s1

y

(4)

ucopys

utable1=y

(5)

u1z

u1z

(6)

s1

y

(7)

mMatrix1,shape=symmetric,a,readonly

ma

(8)

MatrixOptionsm

shape=symmetric,datatype=anything,storage=triangularupper,order=Fortran_order,readonly

(9)

ncopym

na

(10)

MatrixOptionsn

shape=symmetric,datatype=anything,storage=triangularupper,order=Fortran_order

(11)

For a table 'a' that contains another table 'b'; when copy is done on 'a' an entirely new copy of 'a' is created.  However the objects contained in the table are not duplicated; so both 'a' and the copy of 'a' contain the table 'b'. Thus, if a change is made to the table 'b' in 'a', that change will show up in the copy of 'a' as well, and vice versa.

Stable45,tablesymmetric,1,2=3

Stable1=45,2=tablesymmetric,1,2=3

(12)

S1

45

(13)

TcopyS

Ttable1=45,2=tablesymmetric,1,2=3

(14)

T1

45

(15)

T150

T150

(16)

S1

45

(17)

S22,1

3

(18)

T22,15

T22,15

(19)

S22,1

5

(20)

For a list of records, deep must be used to obtain unique instances of the records.

rlRecorda=1,b=2,Recorda=3,b=4

rlRecorda=1,b=2,Recorda=3,b=4

(21)

rl_copycopyrl

rl_copyRecorda=1,b=2,Recorda=3,b=4

(22)

rl_deepcopyrl,deep

rl_deepRecorda=1,b=2,Recorda=3,b=4

(23)

rl1a7

rl1a7

(24)

rl_copy1a

7

(25)

rl_deep1a

1

(26)

See Also

Array

Matrix

rtable

table

Vector