我使用的是matlab,我有这个平方矩阵。我需要检查它是否是块三对角(具有大小为NxN的块(。有简单的方法吗?
假设一个[r x r]
矩阵A
和大小为[N x N]
的块构造一个1和0的块三对角矩阵k
,并比较两个矩阵A
和k
的非零元素的索引:
r = size(A, 1);
Bin = ones(r/N, 3);
S = spdiags(Bin, -1:1, r/N, r/N);
k = kron(S, ones(N));
f = find(k);
fA = find(A);
is_A_block_tridiagonal = all(ismember(fA, f));