在matlab中制作三对角矩阵

Lau*_*oti 2 matlab

我想用matlab制作一个三对角矩阵

full(gallery('tridiag', 10,  1, -4, 6, -4, 1)) 
Run Code Online (Sandbox Code Playgroud)

我认为我在函数中有太多的参数.还有另一种方法吗?

我正在尝试制作以下矩阵:

 6    -4     1     0     0
-4     6    -4     1     0
 1    -4     6    -4     1
 0     1    -4     6    -4
 0     0     1    -4     6
Run Code Online (Sandbox Code Playgroud)

Tro*_*kin 5

由于您的矩阵是五对角线,我认为最好的解决方案是使用spdiags:

>> n = 5;
>> full(spdiags(ones(n,1)*[1,-4,6,-4,1],[-2,-1,0,1,2],n,n));
ans =
     6    -4     1     0     0
    -4     6    -4     1     0
     1    -4     6    -4     1
     0     1    -4     6    -4
     0     0     1    -4     6
Run Code Online (Sandbox Code Playgroud)

full是可选的,不推荐用于大型n.