Ask Your Question
1

How to input data in SAGE and deal with them

asked 11 years ago

Li Yutong gravatar image

updated 11 years ago

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!!!

Preview: (hide)

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 ( 11 years ago )

1 Answer

Sort by » oldest newest most voted
1

answered 11 years ago

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
Preview: (hide)
link

Comments

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

Li Yutong gravatar imageLi Yutong ( 11 years ago )

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: 11 years ago

Seen: 771 times

Last updated: Nov 03 '13