작성
·
243
0
안녕하세요 강사님.
exercise 99 관련해서 inner_idx 부분 관련해서 질문 드리겠습니다.
###### ( '변수명'만 조금 수정한 코드입니다!)
for row_idx in range(n_row):
vec1 = mat1[row_idx] # mat1 의 차원데이터를 각각 [1,2,3] ,[4,5,6] , [7,8,9] 씩 저장
dot_prods = list()
for col_idx in range(n_col):
vec2 = list() # vec1 값에다가 mat2 의 세로로 한줄씩 [11,14,17] [12,15,18] 씩 꺼내야됨
for inner_row_idx in range(n_row):
# 행을 순환시키고, 열은 고정해야 세로로 한줄씩 [11,14,17] [12,15,18] 씩 꺼낼수 있음.
vec2.append(mat2[inner_row_idx][col_idx])
dot_prod = 0
for inner_idx in range(n_col):
dot_prod += vec1[inner_idx] * vec2[inner_idx]
dot_prods.append(dot_prod)
mat_mat_mul.append(dot_prods)
######
(어차피 값은 동일하겠지만...) 저의 경우에는 inner_idx 부분을 range(n_row) 로 하는 게 좀 더 정확하지 않을까 싶은데요!
mat2 에 접근할때 세로로 한줄씩 리스트로 뽑아서 vec2 에 넣으려고 하는 건데... 열(col_idx)는 고정되어있고 행 부분을 iteration 시키니깐, in range(n_row) 라고 하는 게 좀 더 정확하지 않을까 싶습니다.
inner_idx 부분에서 range 안에 n_col 을 넣는 것이 조금 개념적으로 헷갈려서 질문을 드렸습니다.
저의 이해나 수정한 방식에서 틀린 부분이 있을까요?
답변 1
1
안녕하세요 대혁님!
말씀하시는 부분의 의도는 충분히 공감합니다~
코드를 만들 때 상당히 다양하게 만들 수 있으니, 대혁님이 생각하시는대로 작성하셔도 됩니다!
다만 수정하는 부분에서 발생할 수 있는 부분만 주의한다면 자신에게 편한 코드로 작성하는게 오히려 더 좋습니다 :)
감사합니다.
신경식 드림