Matlab:创建(非常数)三对角矩阵

Matlab:创建(非常数)三对角矩阵,matlab,matrix,Matlab,Matrix,因为可以在Matlab中创建(非常量)对角矩阵,f.i.a=diag([1;2;3]),我想知道是否有一种简单的方法来创建非常量三对角矩阵。因为gallery('tridiag',…)命令仅适用于常数三对角矩阵。如果我正确理解了您的问题,那么您可以使用下面的代码行创建随机三对角矩阵 n=10; p=3; T=toeplitz([1 randn(1,n-p-1) zeros(1,p)], [1 randn(1,n-p-1) zeros(1,p)])*diag(randn(1,n)) 注意,您也

因为可以在Matlab中创建(非常量)对角矩阵,f.i.
a=diag([1;2;3])
,我想知道是否有一种简单的方法来创建非常量三对角矩阵。因为gallery('tridiag',…)命令仅适用于常数三对角矩阵。

如果我正确理解了您的问题,那么您可以使用下面的代码行创建随机三对角矩阵

n=10; 
p=3;
T=toeplitz([1 randn(1,n-p-1) zeros(1,p)], [1 randn(1,n-p-1) zeros(1,p)])*diag(randn(1,n))

注意,您也可以更改toeplitz函数中的
1
,也可以一直删除它,但随后会收到一条警告。

查找
spdiags
:-如果需要,将矩阵转换为
full
,因为这会生成稀疏矩阵。