gpt4 book ai didi

matlab - 如何从 A 向量中获取对角矩阵

转载 作者:太空宇宙 更新时间:2023-11-03 19:09:35 25 4
gpt4 key购买 nike

我有一个专栏:

0.0677
0.0584
0.0487
0.0453
0.0394

什么指令会得到下面的输出

0.0677   0          0         0          0
0 0.0584 0 0 0
0 0 0.0487 0 0
0 0 0 0.0453 0
0 0 0 0 0.0394

最佳答案

diag 是正常的 MATLAB 解决方案(正如 posdef 所指出的那样)因此

D = diag(vec);

根据需要为您提供一个包含对角线元素的矩阵。

也许在某些应用中更好的方法是创建一个稀疏矩阵,因为对角矩阵非常稀疏。因此,如果您正在执行矩阵乘法,这将极大地帮助减少不必要的操作数量。

n = length(vec);
D = spdiags(vec(:),0,n,n);

如果您真的想以显式形式进行赋值,请使用这样的单个线性索引:

n = length(vec);
D = zeros(n);
D(cumsum([1,repmat(n+1,1,n-1)])) = vec;

或者您可以使用 sub2ind 函数将一组索引转换为单个索引。

关于matlab - 如何从 A 向量中获取对角矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5243890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com