Ask Your Question
0

What is the meaning of string index out of range?

asked 2016-12-04 06:45:49 -0500

Nilesh gravatar image

updated 2017-01-08 05:06:04 -0500

FrédéricC gravatar image

I am dealing with [35,6] linear code over finite filed with 2 elements. I am able to get an output of its generator matrix as 6x35 matrix, but while computing parity check matrix which will be of size 29x35, I am getting following output: IndexError:string index out of range

Does it mean that its size is two large? If still it is so, how to get that matrix in sage??

edit retag flag offensive close merge delete

Comments

Could you please provide the full code that lead to the error ?

tmonteil gravatar imagetmonteil ( 2016-12-04 07:00:58 -0500 )edit

2 answers

Sort by » oldest newest most voted
0

answered 2017-03-29 03:21:13 -0500

dan_fulea gravatar image

The following was working for me. A is a matrix of shape 6x35, taken (almost) randomly. (There was a rank check after getting it.) C is the linear code associated to it. B is the parity check matrix for the code.

sage: A = MatrixSpace( GF(2), 6, 35 ).random_element()
sage: A
[1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 1 0 1]
[1 0 0 0 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 1 1 0 0 0 1 1 1]
[1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 0 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1]
[0 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 0 1 1]
[0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 1 1]
[1 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 0 0 1 0]
sage: A.rank()
6
sage: # this is ok...
sage: C = LinearCode(A)
sage: B = C.parity_check_matrix()
sage: B
29 x 35 dense matrix over Finite Field of size 2 (use the '.str()' method to see the entries)
edit flag offensive delete link more
0

answered 2016-12-04 07:15:38 -0500

tmonteil gravatar image

ithout further information on your concrete use case, such an error appears when you asks for the letter of a string at an index that is larger than the length of the string:

sage: s = 'abc'
sage: s[0]
'a'
sage: s[1]
'b'
sage: s[2]
'c'
sage: s[3]
IndexError: string index out of range
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: 2016-12-04 06:45:49 -0500

Seen: 103 times

Last updated: Mar 29