现在的位置: 首页 > 综合 > 正文

python 核心编程 第六章 习题16 矩阵加法和乘法

2012年07月13日 ⁄ 综合 ⁄ 共 721字 ⁄ 字号 评论关闭

很简单,但是写的有点复杂感觉,有没有朋友有简单一些的方法,还请不吝赐教~微笑

#!/usr/bin/python 

def mar_add(list1,list2):
	m = len(list1)
	n = len(list1[0])
	if m!= len(list2):
		print "error ! two list must have same dimson"
		return 
	if n!= len(list2[0]):
		print "error ! two list must have same dimson"
		return 
	new_list = []

	for i in range(m):
		new_list.append([])
		for j in range(n):
			new_list[i].append(list1[i][j] + list2[i][j])
	
	return new_list

def mar_multiply(list1,list2):
	m = len(list1)
	k = len(list1[0])
	n = len(list2[0])

	if k != len(list2):
		print "error ! dimension error !"
		return 
	new_list = []
	for i in range(m):
		new_list.append([])
		for j in range(n):
			new_list[i].append(0)
			for x in range(k):
				new_list[i][j] += list1[i][x] * list2[x][j]
	
	return new_list



if __name__ == "__main__":
	list1 = [[1,2],[0,1],[2,3],[5,6]]
	list2 = [[0,1,2],[1,1,0]]

	print mar_multiply(list1,list2)

抱歉!评论已关闭.