Main Content

blkdiag

分块对角矩阵

说明

B = blkdiag(A1,...,AN) 返回通过沿 B 的对角线对齐输入矩阵 A1,...,AN 创建的分块对角矩阵

示例

示例

全部折叠

从三个不同大小的矩阵创建一个分块对角矩阵。

A1 = ones(2,2);
A2 = 2*ones(3,2);
A3 = 3*ones(2,3);
B = blkdiag(A1,A2,A3)
B = 7×7

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

输入参数

全部折叠

输入矩阵,指定为由矩阵构成的以逗号分隔的列表。矩阵可以是方阵或矩形矩阵,大小可以不相同。

如果有任何输入矩阵是稀疏矩阵,则输出分块对角矩阵也是稀疏矩阵。

详细信息

全部折叠

分块对角矩阵

分块对角矩阵是其对角线包含较小矩阵分块的矩阵,它是相对于沿对角线具有单个元素的常规对角矩阵而言的。分块对角矩阵采用以下形式(其中 A1A2、…、AN 各自可以是大小不同的矩阵):

Illustration of a diagonal matrix with blocks A1, A2, and so on along the main diagonal.

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

版本历史记录

在 R2006a 之前推出

另请参阅