import numpy as np import time

生成对角矩阵

n = 1000 d = np.random.rand(n) D = np.diag(d)

生成普通矩阵

A = np.random.rand(n, n)

方法一:循环实现

start_time = time.time() B = np.zeros((n, n)) for i in range(n): for j in range(n): B[i][j] = D[i][i] * A[i][j] print("Method 1 time:", time.time() - start_time)

方法二:mkl实现

import mkl

start_time = time.time() mkl.set_num_threads(1) B = mkl.blas.dgemm(alpha=1.0, a=D, b=A) print("Method 2 time:", time.time() - start_time)

mkl实现对角矩阵乘普通矩阵

原文地址: https://www.cveoy.top/t/topic/fH5y 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录