【发布时间】:2014-06-26 17:11:13
【问题描述】:
我必须从命令行读取文件,并设置矩阵行和列。当我运行我的程序时(如下):
python3 transpose.py matrix 3 4
(current code below) (file with numbers 1 2 3 4 5 6 7 8 9 10 11 12 13) (matrix row,cols)
一起打印应该返回:
The empty matrix is:[[0,0,0,0],[0,0,0,0],[0,0,0,0]]
The original matrix is:
1 2 3 4
5 6 7 8
9 10 11 12
The transposed matrix is:
1 5 9
2 6 10
3 7 11
4 8 12
这是我的 transpose.py 我花了大约 10 个小时在它上面,但无法让它工作,我只是想不出还能做什么!
import sys
from scanner import *
def main():
readinput(sys.argv[1],[2])
size = 3
rows = size
cols = rows
makeList(size)
matrix(rows,cols)
manipulateMatrix(matrix(rows,cols))
print(manipulateMatrix(matrix(rows,cols)))
print("The original matrix is: ")
displayMatrix(manipulateMatrix(matrix(rows,cols)))
transposeSquare(manipulateMatrix(matrix(rows,cols)),size)
print (transposeSquare(manipulateMatrix(matrix(rows,cols)),size))
print("The transposed matrix: ")
displayMatrix(transposeSquare(manipulateMatrix(matrix(rows,cols)),size))
def readinput(filename,matrix):
s = Scanner(filename)
r = s.readtoken()
while r != "":
r = int(r)
c = s.readint()
v = s.readint()
matrix[r][c]=v
r = s.readtoken()
s.close()
def makeList(size):
lyst = []
for i in range(size):
lyst = lyst + [None]
return lyst
def matrix(rows,cols):
matrix = makeList(rows)
for i in range(rows):
matrix[i] = makeList(cols)
return matrix
def manipulateMatrix(m):
rows = len(m)
cols = len(m[0])
count = 1
for r in range(0,rows,1):
for c in range(0,cols,1):
m[r][c] = count
count += 1
return m
def transposeSquare(m,size):
for r in range(0,size):
for c in range(0,size):
m[r][c],m[c][r] = m[c][r],m[r][c]
return m
def displayMatrix(m):
m == rows == cols
for r in range(0,size):
for c in range(0,cols,1):
print(m[r][c],end = "")
print()
return
main()
现在我被困在
Traceback (most recent call last):
File "transpose.py", line 66, in <module>
main()
File "transpose.py", line 6, in main
readinput(sys.argv[1],[2])
File "transpose.py", line 27, in readinput
matrix[r][c]=v
IndexError: list index out of range
【问题讨论】:
-
请注意,您的问题的标题实际上与您的 actual 问题无关(这是代码的一个非常具体的部分,与“转置”功能相去甚远)。
-
读取错误信息。解决问题。稍后继续下一个问题..
-
另外,除非这是家庭作业(看起来很可能),否则 numpy 包中的所有这些矩阵运算都有功能。
-
这是我们期末考试的练习,我们不能使用numpy
-
您无法从您发布的代码中获取该错误消息。
标签: python python-3.x command-line-arguments