假设我在matlab中有两个矩阵:
A = [1 4 6 9 11 13 15 18 21]
B = [2 10 19]
有没有一个我可以使用的函数,这样对于B中的每个元素,我都能够找到A中与该元素最接近的值的索引。例如,在上面的例子中: 2,10和19在数字上最接近A中的1,9和18,而1,9和18的索引是1,4和8,所以该函数应该返回1 4 8。
我知道我可以使用循环来做到这一点,但是matlab并不喜欢循环,而且我的矩阵太大了,迭代所有的值将非常耗时。
发布于 2013-04-16 21:24:27
我会按以下步骤进行:
% clc,clear all,close all
A = [1 4 6 9 11 13 15 18 21];
B = [2 10 19];
C = abs(bsxfun(@minus,A',B));
[~,idx] = min(C(:,1:size(C,2)))
https://stackoverflow.com/questions/16046933
复制相似问题