matlab怎么扩展矩阵,Matlab中如何扩展矩阵,其他部分补零?

2022-10-09 11:16:43

一、使用官方命令 blkdiag

在matlab中搜索:help blkdiag

下面是其官方事例:

Construct block diagonal matrix from input arguments

Syntax

out = blkdiag(a,b,c,d,...)

Description

out = blkdiag(a,b,c,d,...), where a, b, c, d, ... are matrices, outputs a block diagonal matrix of the form

b28e0ae0fb2a8abcd00906846c81ee53.png

The input matrices do not have to be square, nor do they have to be of equal size.即:输入的矩阵可以不是方阵

例如:

blkdiag (rand(2),ones(3))

ans =

0.9649 0.9706 0 0 0

0.1576 0.9572 0 0 0

0 0 1.0000 1.0000 1.0000

0 0 1.0000 1.0000 1.0000

0 0 1.0000 1.0000 1.0000

二、使用其他命令

目的:在B的后面补零

例如:A=[1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1]

B= [2 2

2 2]

补零之后变成:

B=[2 2 0 0

2 2 0 0

0 0 0 0

0 0 0 0]

在matlab命令框中输入以下命令:

A=[1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1]

B=[2 2

2 2]

A =

1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

B =

2 2

2 2

C=zeros(4,4)

C =

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

C(1:2,1:2)=B

C =

2 2 0 0

2 2 0 0

0 0 0 0

0 0 0 0

B=C

B =

2 2 0 0

2 2 0 0

0 0 0 0

0 0 0 0

更简单的一条指令:

B=[2 2

2 2]

B =

2 2

2 2

B(4,4)=0

B =

2 2 0 0

2 2 0 0

0 0 0 0

0 0 0 0

  • 作者:Hank君
  • 原文链接:https://blog.csdn.net/weixin_34023576/article/details/115816182
    更新时间:2022-10-09 11:16:43