假设我有排列成m × n × 3TensorP的m × n矩阵A、B、C:
P = cat(3, A, B, C);
现在我想创建一个新的Tensor,其中每个矩阵重复K次,使第三维大小为3K。也就是说,如果K=2,那么我想创建Tensor
Q = cat(3, A, A, B, B, C, C);
有没有一个很好的内置方式来实现这个,或者我需要为它写一个循环?最好是一样快或比手动方式更快。
如果A、B、C是标量,我可以使用repelem
,但它不像我想要的那样工作于矩阵。
cat(3, A, B, C, A, B, C)
但那也不是我想要的。
1条答案
按热度按时间qjp7pelc1#
正如@Cris Luengo所指出的,
repelem(P, 1, 1, k)
实际上会做你想做的事情(不管MATLAB文档怎么说),但是我可以想到另外两种方法来实现这一点。首先,可以使用
repmat
在second维中复制Tensork
次,然后重新整形:第二,你可以使用
repelem
来给予第三维的索引,从而从以下内容构造Q
: