在matlab中沿第3轴复制2d矩阵多次

sfe*_*ell 2 matlab

我想在matlab中沿第3轴复制784x784矩阵.以下代码似乎有效:

mat = reshape(repmat(mat, 1,10000),784,784,10000);
Run Code Online (Sandbox Code Playgroud)

不幸的是,它需要很长时间才能运行它没有价值(将10,000s改为1000会使它花费几分钟,并且使用10,000会使我的整个机器几乎冻结).有更快的方法吗?

作为参考,我希望在长度为784的10,000个向量上使用mvnpdf,每个向量使用相同的协方差矩阵.所以我的最终通话看起来像

mvnpdf(X,mu,mat)  

%size(X) = (10000,784), size(mu) = (10000,784), size(mat) = 784,784,10000
Run Code Online (Sandbox Code Playgroud)

如果有一种方法可以做到这一点,而不是重复协方差矩阵10,000次,那也是有帮助的.谢谢!

Jon*_*nas 7

对于超过2个维度的复制,您需要将复制计数作为数组提供:

out = repmat(mat,[1,1,10000])
Run Code Online (Sandbox Code Playgroud)