Ask Your Question
3

What's the vector equivalent to Pythons list addition? `[1,2]+[3,4]=[1,2,3,4]`

asked 2010-12-10 05:53:16 +0100

mandrake gravatar image

What's the best way of appending vectors in sage? I'm after the equivalent of Python list addition [1,2]+[3,4]=[1,2,3,4]

edit retag flag offensive close merge delete

Comments

This would be super useful to have.

FrédéricC gravatar imageFrédéricC ( 2015-12-22 18:14:12 +0100 )edit

2 Answers

Sort by » oldest newest most voted
3

answered 2010-12-10 05:56:37 +0100

mandrake gravatar image

updated 2010-12-10 06:51:03 +0100

I'll start off with the hugely ugly create lists from vectors, append and create vector again.

>>> v1 = vector([1,2])
>>> v2 = vector([3,4])
>>> vector( list(v1) + list(v2) )
(1,2,3,4)
edit flag offensive delete link more
3

answered 2010-12-10 13:02:54 +0100

niles gravatar image

You could define two homomorphisms into the free module of rank len(v1)+len(v2):

sage: v1 = vector([1,2])
sage: v2 = vector([3,4])
sage: R = v1.parent(); R
Ambient free module of rank 2 over the principal ideal domain Integer Ring

sage: F = FreeModule(ZZ,4)
sage: F.gens()
((1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 0, 1))

sage: phi1 = R.hom(F.gens()[0:2]); phi1
Free module morphism defined by the matrix
[1 0 0 0]
[0 1 0 0]
Domain: Ambient free module of rank 2 over the principal ideal domain ...
Codomain: Ambient free module of rank 4 over the principal ideal domain ...
sage: phi2 = R.hom(F.gens()[2:4]); phi2
Free module morphism defined by the matrix
[0 0 1 0]
[0 0 0 1]
Domain: Ambient free module of rank 2 over the principal ideal domain ...
Codomain: Ambient free module of rank 4 over the principal ideal domain ...

sage: phi1(v1) + phi2(v2)
(1, 2, 3, 4)

Note that this may have some aesthetic appeal, but your vector(v1.list() + v2.list()) is much more direct :)

edit flag offensive delete link more

Comments

That, I beliveve, I would never have found myself :) Thanks

mandrake gravatar imagemandrake ( 2010-12-16 01:47:55 +0100 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2010-12-10 05:53:16 +0100

Seen: 3,322 times

Last updated: Dec 10 '10