본문 바로가기

Contact English

【코딩】 C 언어 또는 파이썬으로 행렬의 곱 구현하기

 

C 언어 또는 파이썬으로 행렬의 곱 구현하기

 

추천글 : 【C 언어】 C 언어 목차


1. 행렬의 곱셈 [본문]

2. C언어로 구현한 행렬의 곱셈 [본문]

3. 파이썬으로 구현한 행렬의 곱셈 [본문]


 

1. 행렬의 곱셈 [목차]

⑴ 행렬 X의 i 행, j 열의 원소를 X[i][j]라 하고, A ∈ ℝl×m, B ∈ ℝm×n, C ∈ ℝl×n, C = A × B라고 할 때 다음이 성립 

 

 

⑵ C 언어 또는 파이썬으로 구현한 예시 상황은 다음과 같음

 

 

 

2. C언어로 구현한 행렬의 곱셈 [목차]

 

#include <stdio.h>
#define l 3
#define m 3
#define n 3

int main(void) {
	/* x[a][b] has a rows, b columns */
	int A[l][m] = { { 1,3,2 }, { 7,6,3 }, { 3,0,3 } };
	int B[m][n] = { { 2,1,2 }, { 7,8,1 }, { 5,5,1 } };
	int C[l][n]; // C = A ⅹ B
	int i, j, k;
	for(i = 0; i < l; i++)
		for(j = 0; j < n; j++){
			C[i][j] = 0;
			for(k = 0; k < m; k++)
				C[i][j] += A[i][k] * B[k][j];
		}
	for(i = 0; i < 3; i++){
		for(j = 0; j < n; j++)
			printf("%d\t", C[i][j]);
		printf("\n");
	}
	return 0;
}

 

 

3. 파이썬으로 구현한 행렬의 곱셈 [목차]

 

# Define the matrices A and B
A = [[1, 3, 2], [7, 6, 3], [3, 0, 3]]
B = [[2, 1, 2], [7, 8, 1], [5, 5, 1]]

# Initialize the result matrix C with zeros
C = [[0 for _ in range(3)] for _ in range(3)]

# Perform matrix multiplication
for i in range(3):
    for j in range(3):
        for k in range(3):
            C[i][j] += A[i][k] * B[k][j]


# Print the input matrix A
for row in A:
    print('\t'.join(map(str, row)))

# Print the input matrix B
for row in B:
    print('\t'.join(map(str, row)))

# Print the result matrix C
for row in C:
    print('\t'.join(map(str, row)))

 

입력: 2013.07.11 21:52

수정: 2023.11.16 23:27