matlab之在数据组中找到与某数最接近的元素或其下标

这个问题有点绕. 给个具体的例子:
有数组A:

>> A=rand(1,10)A =0.1622    0.7943    0.3112    0.5285    0.1656    0.6020    0.2630    0.6541    0.6892    0.7482

那么给定一个数B=0.5, 求A中哪个数最接近0.5?

思路: 把A与B相减, 看看哪个差最小, 哪个就与B最接近.

>> C=abs(A-B);
>> C_min=min(C)C_min =0.0285
>> [row, col]=find(C==C_min)row =1col =4
>> A(4)ans =0.5285

也就是说第四个就是与0.5最接近的数.

此方法对于矩阵亦适用. 比如需要找的B是多个值[0.5,0.3].

>> C=abs(A'-B);
>> C_min=min(C)C_min =0.0285    0.0112>> [row, col]=find(C==C_min);


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部