Ask Your Question
2

Printing matrices

asked 2013-10-15 20:20:44 +0100

daldrich gravatar image

Trying to format the output of a matrix, B. Sage reports: type 'print obj.str()' to see all of the entries) But print B.str() doesn't give me any format options. Is there a way control output like a regular print statement?

Thanks, -d

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted
2

answered 2013-10-16 16:09:32 +0100

tmonteil gravatar image

updated 2013-10-16 16:11:31 +0100

If you want to print only, say, 3 significant digits, you can do:

sage: B = random_matrix(RDF,5,5)
sage: B
[   0.23432333232  -0.227616100926  -0.599156411098    0.41166189832   0.764641434688]
[  0.439380654181  -0.320536940171   0.320947963409  -0.847122064875   0.404266447713]
[ -0.908186671809   0.622848454479   0.219215554761  -0.872284101116  -0.286278011806]
[  -0.68809928219   0.779797277388    0.12146772553   0.864262076944 -0.0156592746181]
[  0.807522456479  -0.294491803547  -0.569575247674  -0.850921782049  -0.521678331812]

sage: print B.str(rep_mapping=lambda x : str(x.n(digits=3)))
[  0.234  -0.228  -0.599   0.412   0.765]
[  0.439  -0.321   0.321  -0.847   0.404]
[ -0.908   0.623   0.219  -0.872  -0.286]
[ -0.688   0.780   0.121   0.864 -0.0157]
[  0.807  -0.294  -0.570  -0.851  -0.522]
edit flag offensive delete link more
1

answered 2013-10-15 21:48:01 +0100

kcrisman gravatar image

Type

sage: B.str?

to see some options like this:

sage: B = matrix(5,5)
sage: print B.str(zero="Hi Mom")
[Hi Mom Hi Mom Hi Mom Hi Mom Hi Mom]
[Hi Mom Hi Mom Hi Mom Hi Mom Hi Mom]
[Hi Mom Hi Mom Hi Mom Hi Mom Hi Mom]
[Hi Mom Hi Mom Hi Mom Hi Mom Hi Mom]
[Hi Mom Hi Mom Hi Mom Hi Mom Hi Mom]

But perhaps you are talking about other formatting options? More details could be helpful here.

edit flag offensive delete link more
0

answered 2013-10-16 15:19:35 +0100

daldrich gravatar image

updated 2013-10-17 12:02:46 +0100

This is what I'm trying to describe. The formatting is all over the place. Just trying to control the number of significant digits.

-d

print B
[              10.0      7.79934088913      5.73251431925      3.89141577098      2.31956702459      1.02571695446                0.0                0.0                0.0                0.0                0.0                0.0                0.0                0.0                0.0                0.0                0.0                0.0                0.0                0.0]

[              10.0      8.05299001202      6.19851770151      4.50910708097      3.03012495201      1.78330079324     0.774303525753                0.0                0.0                0.0                0.0                0.0                0.0                0.0                0.0                0.0                0.0                0.0                0.0                0.0]

[              10.0      8.21410145744      6.49945939383      4.91636989937      3.50852490926      2.30305774077      1.31391330977     0.546179897277                0.0                0.0                0.0                0.0                0.0                0.0                0.0                0.0                0.0                0.0                0.0                0.0]
edit flag offensive delete link more

Your Answer

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

Add Answer

Question Tools

Stats

Asked: 2013-10-15 20:20:44 +0100

Seen: 5,240 times

Last updated: Oct 17 '13