你可以通过创建一个大小为N X M的随机数数组来实现。现在使用np.diag,我们可以创建对角矩阵,然后将它们堆叠在一起。你可以这么做
import numpy as np
def generate_diagonal_matrices(N, M):
# Generate random numbers for the diagonals
diagonals = np.random.rand(N, M)
# Create diagonal matrices
matrices = [np.diag(diagonals[i]) for i in range(N)]
# Convert list of matrices to a numpy array
return np.array(matrices)
N = 2
M = 3
result = generate_diagonal_matrices(N, M)
print(result)
2条答案
按热度按时间mfpqipee1#
您可以通过创建形状为
(n, m, m)
的输出数组,然后使用numpy.arange索引最后两个轴的前导对角线来实现:计时(
generate_diagonal_matrices
来自用户3046211的答案):6ju8rftf2#
你可以通过创建一个大小为
N X M
的随机数数组来实现。现在使用np.diag
,我们可以创建对角矩阵,然后将它们堆叠在一起。你可以这么做这导致在对角线侧上具有随机元素的下面,总时间复杂度为
O(N x M^2)
。