#ADD STRING MATRIX AND NUM MATRIX Fraction(3).limit_denominator(10)from fractions import Fraction
#ONLY WORKS FOR SQUARE ONES RIGHT NOW!
from fractions import Fraction
def make1(nm,x):
if nm[x][x]!=1:
print("Divide R1 by ",Fraction(nm[x][x]).limit_denominator(10))
tempr = multiply(nm[x],1/nm[x][x])
nm[x] = tempr
return nm
def convert(n):
try:
return float(n)
except ValueError:
num, denom = n.split('/')
return float(num)/float(denom)
def convertm(m):
lm = len(m)
lx = len(m[0])
tempn = [0]*lx
temps = [[]]*lm
print(temps)
cnt = 0
for x in m:
tempn = x
for n in x:
temps[cnt].append(str(Fraction(n).limit_denominator(10)))
print(n)
cnt+=1
print(temps)
def mprint(matrix):
s = [[str(e) for e in row] for row in matrix]
lens = [max(map(len, col)) for col in zip(*s)]
fmt = '\t'.join('{{:{}}}'.format(x) for x in lens)
table = [fmt.format(*row) for row in s]
print('\n'.join(table))
def subtract(r1,r2): #r1-r2
tempr = [0]*len(r1)
for x in range (0,len(r1)):
tempr[x] = r1[x]-r2[x]
return tempr
def multiply(r1,n):
tempr = [0]*len(r1)
for x in range (0,len(r1)):
tempr[x] = r1[x]*n
return tempr
def ans(nm):
end = len(nm[0])
cnt = 0
for x in nm:
cnt+=1
print("X",cnt,"=",x[end-1])
equ = int(input("How many equasions are in the linear system? "))
#unk = int(input("How many unkowns are in the linear system? "))
nm = [0] * equ
sm = [0] * equ
for x in range (0,equ):
tempinput = input("Please enter line "+str(x+1)+" of the matrix: ")
templist = [convert(n) for n in tempinput.split()]
nm[x] = templist
sm[x] = tempinput.split()
mprint(nm)
nm = make1(nm,0)
mprint(nm)
for p in range (0,equ-1):
for x in range (p,equ-1):
print("Subtract ",Fraction(nm[x+1][p]).limit_denominator(10),"*",p+1,"by",p+2)
tempr = multiply(nm[p],nm[x+1][p])
nm[x+1] = subtract(tempr,nm[x+1])
print("FIRST X: ",x,"P",x)
mprint(nm)
nm = make1(nm,p+1)
mprint(nm)
#GOIN BACK
for p in range (0,equ-1):
for x in range (0,equ-(p+1)):
print("Subtract ",x,"by",Fraction(nm[x][2-p]).limit_denominator(10),"*",3)
tempr = multiply(nm[2-p],nm[x][2-p])
nm[x]= subtract(nm[x],tempr)
print("SECOND X: ",x,"P",x)
mprint(nm)
ans(nm)
##or x in range (0,equ):
# print()
#g = nm[1][0]-1
#print("")
#tempr = multiply(nm[0],g/nm[0][0])
#nm[0]=tempr
#tempr = subtract(nm[1],nm[0])
#nm[0] = tempr
Pastebin of my codeКопировать массив поплавков в массив строк
ИТАК, где моя актуальная проблема находится в невыполненном (потому что я не мог заставить его работать) Защита convertm. То, что это должно сделать, это взять матрицу с числами (nm) и принять каждое значение и преобразовать ее в строку как фракции (x/x), если необходимо, и сохранить ее в матрице строк (см). Вот что сегмент кода я ссылающийся ...
def convertm(m):
lm = len(m)
lx = len(m[0])
tempn = [0]*lx
temps = [[]]*lm
print(temps)
cnt = 0
for x in m:
tempn = x
for n in x:
temps[cnt].append(str(Fraction(n).limit_denominator(10)))
print(n)
cnt+=1
print(temps)
Я добавил некоторые печатные издания, чтобы попробовать и испытать то, что, черт возьми, происходит во время него. Я получаю вывод только последней строки, повторяющейся во всех строках. Я думаю, что у меня нет оператора возврата в настоящее время только потому, что я пытался заставить это работать. ИТАК для примера, если массив импортируется то есть ...
[[1,2,3],
[4,5,6],
[7,8,9 ]]
Это будет выводить (набор временные секретари к)
[[ '7', '8', '9'],
[ '7', '8', '9'] ,
[ '7', '8', '9']]
Хочу к выходу (набор временные секретари к)
[[ '1', '2', '3'],
[ '4', '5', '6'],
[ '7', '8', '9']]
Также я использую Python 3.3.1
(возможно, нужно обновить до 3.3.3, но это не то, что мы обсуждаем!) У меня нет абсолютно никакой идеи, почему я t делает это, и любая небольшая помощь будет очень оценена!
СПАСИБО
Я также прошу прощения, если это форматирование ужасна Я новичок в этом, и я копировать/вставить это с другого форума Я очень отчаянный знать, что здесь происходит.
Я бы удалил огромный блок кода наверху. Я полностью проигнорировал это, чтобы ответить на вопрос. Это заставит большинство пользователей отказаться от попытки ответить на вопрос. – SethMMorton
Как правило, вы получите наилучшие результаты при задании вопроса, если вы разделите свой код на [минимальный минимум, необходимый для запуска и получения ошибки] (http://stackoverflow.com/help/mcve). – user2357112