다음 코드는 파이썬 3.6.1에서 성공적인 매트릭스를 만들기위한 시도입니다. 보시다시피, 저는 알파와 브라보 행렬을 할당 받았고, 알파와 브라보 행렬을 곱한 결과로 채워진 Charlie 행렬 (리스트)을 생성하도록 코드를 원합니다. 내 문제는 모듈을 실행할 때 c가 정의되어 있지 않다는 것이다. 내가 a 또는 b를 요청하면 동일합니다. 프로 팁 또는 포인터 누구? 고맙습니다.파이썬 매트릭스 코드 변수가 할당되지 않음을 나타냅니다
import math
def matrix(a, b, c):
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
b = [[3, 2, 1], [4, 4, 4], [3, 6, 8]]
c = [[], [], []]
for c in matrix:
c[1][1] = a[1][1] * b[1][1] + a[1][2] * b[2][1] + a[1][3] * b[3][1]
c[1][2] = a[1][1] * b[1][2] + a[1][2] * b[2][2] + a[1][3] * b[3][2]
c[1][3] = a[1][1] * b[1][3] + a[1][2] * b[2][3] + a[1][3] * b[3][3]
c[2][1] = a[2][1] * b[1][1] + a[2][2] * b[2][1] + a[2][3] * b[3][1]
c[2][2] = a[2][1] * b[1][2] + a[2][2] * b[2][2] + a[2][3] * b[3][2]
c[2][3] = a[2][1] * b[1][3] + a[2][2] * b[2][3] + a[2][3] * b[3][3]
c[3][1] = a[3][1] * b[1][1] + a[3][2] * b[2][1] + a[3][3] * b[3][1]
c[3][2] = a[3][1] * b[1][2] + a[3][2] * b[2][2] + a[3][3] * b[3][2]
c[3][3] = a[3][1] * b[1][3] + a[3][2] * b[2][3] + a[3][3] * b[3][3]
return c
제임스 감사합니다. 나는 그것이 존재한다는 것을 알게 된 지금 Numpy 모듈을 사용하고 있습니다. 그러나 Numpy와 같은 모듈을 사용하지 않기로 결정하고 위의 원래 코드에서와 같이 길이를 결정한 경우 : 인덱스 위치를 고정하면 작동할까요 (내가하지 않은 올바른 위치에서 시작) , 그리고 C 변수에 대한 자리 표시 자 값 (예 : [[0,0,0], [0, 0, 0], [0, 0, 0]] 대신에 빈리스트 목록) ? – Feverdreamer44
네, 그게 효과가 있습니다. 색인에서 하드 코딩하는 것보다'c' 출력을 만드는 더 효율적인 방법이 있습니다. 방법을 보여주기 위해 내 대답을 수정합니다. – James
정말 도움이 제임스 주셔서 감사합니다. 제공 한 코드의 표기법, 특히 내적 생성 방법을 설명 할 수 있습니까? 나는 xx와 yy의 사용법, 또는 왜 bT가 사용되는지 이해하지 못한다 : bT에서 y에 대한 xx * yy (zip (x, y)의 yy)) – Feverdreamer44