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

i like this post (click again to cancel)
2
i dont like this post (click again to cancel)

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]

asked Dec 10 '10

mandrake gravatar image mandrake
53 1 10

2 Answers:

i like this answer (click again to cancel)
3
i dont like this answer (click again to cancel)

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 :)

link

posted Dec 10 '10

niles gravatar image niles
3429 5 41 94
http://nilesjohnson.net/
That, I beliveve, I would never have found myself :) Thanks mandrake (Dec 16 '10)
i like this answer (click again to cancel)
2
i dont like this answer (click again to cancel)

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)
link

posted Dec 10 '10

mandrake gravatar image mandrake
53 1 10

updated Dec 10 '10

Your answer

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[hide preview]

Question tools

1 follower

Tags:

Stats:

Asked: Dec 10 '10

Seen: 229 times

Last updated: Dec 10 '10

powered by ASKBOT version 0.7.22
Copyright Sage, 2010. Some rights reserved under creative commons license.