我有一个单元格数组,其中每个单元格包含不同大小的方形邻接矩阵(在 MATLAB 中),例如
A = 29x29 double
30x30 double
24x24 double
10x10 double
现在我想从 A 的每个单元格创建一个块对角矩阵 B,使得 A 的每个单元格都在 B 的对角线上。示例
B = [29X29] 0 0 0 0 0 0 0 0 0 0
0 0 [30x30] 0 0 0 0 0 0 0
0 0 0 0 [24X24] 0 0 0
0 0 0 0 0 0 [10x10]
所以 B 会是 NxN,其中 N = 29+30+24+10
我尝试使用以下代码,但没有成功。
function B =blockD(A)
n=size(A,1);
for i = 1:n
B=blkdiag(A{i});
end
end
最后我还必须对归一化矩阵 B 进行行