我想用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)
由于您的矩阵是五对角线,我认为最好的解决方案是使用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.