Python生成指定规律N×N矩阵的算法实现求助
矩阵生成算法
你需要构造的是n阶下双对角矩阵,规则非常明确:
- 主对角线(行号与列号相等的位置)所有元素为1
- 主对角线左下方相邻的次对角线(行号 = 列号 + 1的位置)所有元素为-1
- 其余所有位置元素为0
算法步骤
- 初始化一个大小为n×n的全0矩阵
- 遍历每一行的索引
i(从0开始计数,取值范围为0 ~ n-1):- 将第
i行第i列的元素赋值为1 - 如果
i > 0(非第一行),将第i行第i-1列的元素赋值为-1
- 将第
代码实现
1. 纯Python实现(无需第三方库)
def generate_special_matrix(n): # 初始化全0矩阵 matrix = [[0 for _ in range(n)] for _ in range(n)] for i in range(n): matrix[i][i] = 1 if i > 0: matrix[i][i-1] = -1 return matrix
2. NumPy实现(适合科学计算场景)
更简洁的写法:
import numpy as np def generate_special_matrix(n): # diag生成对角线矩阵,k=-1表示下偏移1位的次对角线 return np.diag([1]*n) + np.diag([-1]*(n-1), k=-1)
调用generate_special_matrix(5)即可得到你给出的示例输出。
内容的提问来源于stack exchange,提问作者Serr
相关产品推荐
相关产品推荐

