copy - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

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