当前位置:  开发笔记 > 编程语言 > 正文

找到最接近第一个元素的行

如何解决《找到最接近第一个元素的行》经验,为你挑选了1个好方法。



1> hbaderts..:

您可以使用该bsxfun函数创建一个矩阵,该矩阵包含b第一列中每个元素和每个元素之间的差异a:

bsxfun(@minus,b,a(:,1))
ans =
   -0.0230   -0.1100   -0.2100   -0.0900
    0.0770   -0.0100   -0.1100    0.0100
    0.1770    0.0900   -0.0100    0.1100

矩阵的每一行对应于一个元素a(:,1),并且每列对应于一个元素b.即元素(3,1)等于b(1)-a(3,1).

为了找到最近的值,让我们看一下绝对值,abs()并使用该min函数找到每列的最小值.第一个返回值min是每列的最小值,第二个返回值是索引.我们只需要索引,所以我们使用丢弃第一个返回值~.

[~,minRow] = min(abs(bsxfun(@minus,a(:,1),b)))
minRow =
     1     2     3     2

我们现在知道,a我们必须使用哪一行,所以我们可以通过b将一行矩阵连接a到一个矩阵来构造矩阵:

c = [ b.', a(minRow,2:end) ];
c =
    4.1230   45.0000   65.0000   84.0000   84.0000
    4.2100   62.0000   78.0000   83.0000   43.0000
    4.3100   84.0000   94.0000   93.0000   94.0000
    4.1900   62.0000   78.0000   83.0000   43.0000

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有