【发布时间】:2014-06-11 03:51:22
【问题描述】:
我正在尝试矢量化,或者使以下代码更高效:
[Y,k] = min(abs(dxcp-X));
X = dxcp(k);
代码的目的是将值 X 与 x (dxcp) 的可接受值数组进行比较,并将 X 分配给数组 dxcp 中最接近的值。例如:
X 等于 9,dxcp 数组为:[1,2,3,6,10,20]。第二行会将 X 更改为等于 10。
我正在尝试更改我的脚本,以便可以将 X 作为数字数组输入,并且想知道使上述代码适用于这种情况的最有效方法是什么。我当然可以使用:
for i = 1:numel(X)
[Y,k] = min(abs(dxcp-X(i)));
X(i) = dxcp(k);
end
但我觉得必须有一种方法可以更有效地完成此任务。干杯,nzbru。
【问题讨论】:
标签: arrays performance matlab vectorization bsxfun