【发布时间】:2013-01-02 13:30:22
【问题描述】:
我有一个由 0 和 1 组成的矩阵。每个具有一个值的单元格表示一个非空单元格。 带有这些的单元格保存在带有坐标的向量中。 我正在遍历列表并将每个元素随机移动到其空闲的相邻单元格之一。
有没有办法通过向量运算来做到这一点?
谢谢
【问题讨论】:
-
点可以相互移动,还是有排斥力?矢量运算意味着你需要能够平行移动。
-
它们不能相互重叠。每个单元格只有一个点:|
-
因为这可以在一维循环中实现,所以我认为 for 循环会比“矢量化”arrayfun 更快。
-
您是否分析过您的代码以确定瓶颈在哪里?这样一个小问题应该很快,只要你只用它们的坐标来表示点,而不是试图在每次迭代中创建零和一个矩阵(这完全没有必要,最后可以是矢量化操作模拟)
标签: matlab vector matrix coordinates