使用小矩阵通过反复连接来生成更大的矩阵

时间:2016-10-27 00:43:00

标签: matlab

我有一个40x43矩阵,我想用这个矩阵构建一个块来生成更大的矩阵。 我想生成一个像附加图像的结构,构建块是40x43矩阵。我尝试使用[A zeros(20,43);零(20,43)A]但正如我猜测的那样,horzcat确实没有用。理想情况下,我希望使用此块1000次来扩展矩阵的结构。有人能告诉我一种连接小矩阵的有效方法吗?

enter image description here

1 个答案:

答案 0 :(得分:2)

尝试使用Kronecker product。这会执行所谓的{{3}},以便对于两个矩阵AB,结果为:

在这种情况下,我们可以通过将A设置为大小为1000 x 1000和B的单位矩阵作为您要复制的矩阵来复制您想要的内容。但是,为了促进计算节省和内存使用,请确保使用单元矩阵的稀疏版本。这会将输出矩阵转换为sparse形式。如果要复制1000次,则需要创建40000 x 43000矩阵,这需要13.76 GB的内存,并且您可能没有足够的内存可用于此矩阵。由于大多数元素为零,因此请改用sparse版本:

N = 1000;
B = kron(speye(N), A);