Ask Your Question
1

How to input data in SAGE and deal with them

asked 2013-11-02 21:20:45 +0200

Li Yutong gravatar image

updated 2013-11-03 00:16:50 +0200

vdelecroix gravatar image

I wish to calculate the width of the certain polytopes, the data for these polytopes can be found here (please click "K3/3d" on the left, and then click "list of all 4319" on the top of new page, for some reason, I could not cite the exact URL).

For example, the first one is

3 4 M:5 4 N:35 4 Pic:19 Cor:0

1    0    0   -1
0    1    0   -1
0    0    1   -1

However, only the number in the matrix will be used in the calculation. My questions are:

(1) How to input these data in SAGE (I use a windows system, and run Virtualbox for SAGE)?

(2) How to use sage to deal with each matrix?

For each of matrix, I have a program as the follows

sage: m = matrix(ZZ, [[1,0,0,-1],
....:        [0,1,0,-1],
....:        [0,0,1,-1]])
sage: p = LatticePolytope(m)
sage: d = p.distances()
sage: l = p.nfacets()
sage: for i in range(l):
....:     max(d.row(i))

After input the data, how to let sage use the same program deal with each matrix?

Thank you very much for your help!!!

edit retag flag offensive close merge delete

Comments

Maybe also the answers in this (http://ask.sagemath.org/question/1842/how-to-plot-data-from-a-file#2705) related questions are helpful.

twch gravatar imagetwch ( 2013-11-03 11:23:21 +0200 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2013-11-03 03:25:13 +0200

ndomes gravatar image

Copy and paste the data from "K3/3d" to a text file. Upload that file to your worksheet (I use Sage Notebook). (I name the file 'k3_d3_data.txt')

Open the file in your worksheet. Now you can iterate through the lines and convert the appropriate lines to matrices.

data_file = file(DATA+'k3_d3_data.txt','r')   
matrix_list = []    
while True:
    try: 
        data_file.next()
    except StopIteration:
        break
    row1 = [int(z) for z in data_file.next().split()]
    row2 = [int(z) for z in data_file.next().split()]
    row3 = [int(z) for z in data_file.next().split()]
    matrix_list.append(matrix(ZZ,[row1,row2,row3]))  

for M in matrix_list:
    print M
edit flag offensive delete link more

Comments

@ndomes, Thank you very very much!!! You answer is fabulous, I know how to do it now!!!

Li Yutong gravatar imageLi Yutong ( 2013-11-03 13:59:04 +0200 )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

Stats

Asked: 2013-11-02 21:20:45 +0200

Seen: 634 times

Last updated: Nov 03 '13