首页 > 试题广场 >

将向量转换为对角矩阵

[编程题]将向量转换为对角矩阵
  • 热度指数:823 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
实现一个函数,将一维向量转换为对角矩阵。对角矩阵是一个方阵,其主对角线上的元素来自输入向量,而其他位置的元素都为0。

输入描述:
第一行输入一个一维向量,长度为 n


输出描述:
返回一个二维numpy数组(方阵):
- 维度为 n \times n,其中 n 是输入向量的长度
- 对角线上的元素来自输入向量
- 其他位置的元素都为0
元素类型不需要手动修改,让它为默认的即可。
示例1

输入

[1, 2, 3]

输出

[[1. 0. 0.]
 [0. 2. 0.]
 [0. 0. 3.]]

备注:
1.对应的输入、输出已给出,您只用实现核心功能函数即可。
2.支持numpy、scipy、pandas、scikit-learn库。
头像 牛客题解官
发表于 2025-02-05 12:52:23
将向量转换为对角矩阵(Diagonal Matrix)是一种常用的矩阵,其计算公式为: 其中,是向量。 通俗的说,就是将向量中的每个元素作为对角矩阵的对角线上的元素。 标准代码如下 def make_diagonal(x): identity_matrix = np.identity(np 展开全文
头像 雀青
发表于 2025-07-28 15:16:19
numpy 1行流 import numpy as np def make_diagonal(x): return np.eye(x.shape[0])*x if name == "main": x = np.array(eval(input())) print(make_dia 展开全文
头像 ForHeart
发表于 2025-03-03 17:23:57
import numpy as np def make_diagonal(x): arr = np.array( x , dtype=np.float32 ) return np.diag(arr) if __name__ == "__main__&q 展开全文
头像 再坚持一下吧唧
发表于 2025-08-18 19:56:55
import numpy as np def make_diagonal(x): return np.diag(x) if __name__ == "__main__": x = np.array(eval(input()),dtype=np 展开全文