【发布时间】:2014-06-05 15:23:37
【问题描述】:
我正在使用 Matlab,我正在尝试提出一个矢量化解决方案,用于将一个数组的元素与另一个数组的每个元素进行比较。具体来说,我想找出差异,看看这个差异是否低于某个阈值。
例如:a = [1 5 10 15] 和 b=[12 13 14 15],阈值 = 6
因此,a 中满足阈值的元素将是 10 和 15,因为每个值都在 b 中任何值的 6 以内,而 1 和 5 则不然。目前我有一个 for 循环遍历 a 的元素并从 b 中减去一个大小相等的矩阵(对于 5,它将是 a = [5 5 5 5])。这显然需要很长时间,所以我试图找到一个矢量化的解决方案。此外,我保存数据的当前格式实际上是每个单元格元素的大小为 [1 2] 的单元格,并且我一直在使用 cellfun 函数来执行减法。我不确定这是否会使每个 [1 2] 块的解决方案与第二个单元的 [1 2] 块的解决方案复杂化。矢量化解决方案响应很好,无需进行阈值分析。我只是添加了一些背景知识。
提前致谢,
陈曼伟
【问题讨论】:
标签: arrays matlab element vectorization