【发布时间】:2013-09-22 16:37:45
【问题描述】:
我有一些带有 mxn 矩阵的 MATLAB 代码。
最初,我将第一行放入其中,然后代码通过一个 for 循环运行,该循环将剩余的 m-1 行一一追加;循环的每次迭代都有一个。
正如预期的那样,MATLAB 建议我预先分配矩阵,因为它会随着循环的每次迭代而扩展。
因此,如果我在所有 m 行中预先分配零,MATLAB 很可能会在 m 行之后追加行(从第一个追加行的 m+1 开始),因为 m 行已经被填充(即使是零!)
在这种情况下是否有任何方法可以预先分配矩阵以提高速度?
【问题讨论】:
-
downvoters 愿意解释原因吗?不要粗鲁的家伙。我正在尝试在这里学习 MATLAB,这是我的第二个 MATLAB 程序。我在 SO 上找不到其他相关问题。
-
个人没有投票,但您的问题不清楚。通过包含您的代码的 sn-p 以及对最终矩阵应该是什么的一些想法(或者如果您的最终矩阵很大,则可以简化示例),这将大大改进。
-
@nkjt:现在清楚了吗?
-
我的意思是你应该展示你的代码(只是循环)。您可能正在做您不应该做的事情(正如 chappjc 建议的那样,将带有
A = [A; rowVec];的行附加到预先分配的矩阵上,也许)。 -
@nkjt:这正是我正在做的......我太愚蠢了......