从一些给定的矩阵创建一个矩阵

Create a matrix from some given matrices

我要实施这个矩阵。用户将在其中定义维度值(p 和 N)。

matrix

在 matlab 中执行此操作的最有效方法是什么。

假设您有一个定义 A(p)B(p)C(p) 的函数,您可以按如下方式使用 kron

F = @(N,p) kron(diag(ones(N,1)),A(p)) + ... 
           kron(diag(ones(N-1,1),1),B(p)) + ...
           kron(diag(ones(N-1,1),-1),C(p))

例如,如果

A = @(p) ones(p);
B = @(p) 2*ones(p);
C = @(p) 3*ones(p);



>> F(4,2)

ans =

 1     1     2     2     0     0     0     0
 1     1     2     2     0     0     0     0
 3     3     1     1     2     2     0     0
 3     3     1     1     2     2     0     0
 0     0     3     3     1     1     2     2
 0     0     3     3     1     1     2     2
 0     0     0     0     3     3     1     1
 0     0     0     0     3     3     1     1