【发布时间】:2014-07-07 14:34:32
【问题描述】:
我正在编写一个代码,其中减少速度和时间非常重要。我必须通过重复一些向量来创建一些矩阵。由于我的向量几乎很大,因此使用 repmat 创建这些矩阵需要相对较长的时间。有没有其他方法可以减少这个时间?
【问题讨论】:
-
为什么首先需要复制这些向量?也许您可以使用
bsxfun完全避免这种复制? -
虽然我不排除击败 repmat 的可能性,但也没有那么糟糕。因此,您可能希望研究矩阵的创建和使用。
-
如果你真的看到
repmat显示为分析器中的瓶颈,我能给出的唯一解释是 1) 你的向量包含由@987654327 深度复制的用户实现的类型@, 2) 你的内存用完了,MATLAB 正在分页到硬盘,在这种情况下,bsxfun和朋友可以派上用场(或者以某种方式自己实现隐式复制)。repmat非常高效,我强烈怀疑它是否是真正的瓶颈。