在数组中找到最接近的值

3846次浏览(过去30天)
Chiranjibi
Chiranjibi 2014年8月25日
编辑: 马克•维兰特2020年4月26日
我有两个矢量(时间戳),
VN
1375471092848936 1375473384440853
1375473388165900 1375471277856598
1375471320476780 1375473388165900
1375473388947681 1375471322465961
1375473392527002 1375471335206288
.................. ..................
我的目标是找到N中相对于V最近的时间(即找到N中几乎等于V的时间)。我的坐标系是W = 1e4,而且V应该位于N-W和N+W之间。那么如何通过MATLAB得到最近时间呢?任何帮助都将不胜感激。
谢谢

接受的答案

乔年代
乔年代 2018年9月10日
编辑:MathWorks支万博1manbetx持团队 2018年11月27日
为V中的每个元素计算向量N中最近的值,尝试下面的示例向量N和V:
V = randi(10,[5 1])
N = randi(10,[5 1])
A = repmat(N,[1 length(V)])
[minValue, closestIndex] = min (abs(动))
closestValue = N (closestIndex)
注意,如果每一列中的最小值相等,MATLAB将选择列中的第一个元素。
3评论
马克•维兰特
马克•维兰特 2020年4月24日
当N的长度为1时,为了使这个解保持一致,建议是改变
[minValue, closestIndex] = min (abs(动))
closestValue = N (closestIndex)
[minValue, closestIndex] = min (abs(动),[],1)
closestValue = N (closestIndex”)
否则,当N的长度为1时,min将返回一个标量。注意closestIndex的转置,否则当N的长度为1时,你不会得到列向量。

登录评论。

更多的答案(3)

安德鲁Reibold
安德鲁Reibold 2014年8月25日
编辑:安德鲁Reibold 2014年8月25日
它找到N中最接近我所调用的V的值。
N = [1990 1998 2001 2004 2001]
V = [2000 2011 2010 2001 1998]
[c index] = min(abs(N-V(1)))
在这种情况下,我寻找最接近的值'V(1)'是2000。它应该返回N的第3或第5个值,即2001。
注意:'index'是最接近值的索引。如果两个是相同的,就像这个例子中两个不同的'2001',它将返回第一个的索引。
4评论
图像分析
图像分析 2018年2月17日
reetu,如果N只是一个数字,你可以这样做
[minDistance, indexOfMin] = min(abs(V-N));

登录评论。


图像分析
图像分析 2014年8月25日
这个怎么样:
clc;
%样本数据
numberOfRows = 5;
V = rand(numberOfRows, 1)
N = rand(numberOfRows, 1)
求最小距离
minDistance =正;
ni = 1: numberOfRows
vi = 1: numberOfRows
= abs(N(ni) - V(vi));
如果距离(vi, ni) < minDistance
minNRow =镍;
minVRow =六世;
minDistance =距离(vi, ni);
结束
结束
结束
%报告到命令窗口:
距离
流('最近的距离是%f,发生在N的行%d和V的行%d之间'...
minDistance、minNRow minVRow);
在命令窗口:
V =
0.5309
0.6544
0.4076
0.8200
0.7184
N =
0.9686
0.5313
0.3251
0.1056
0.6110
距离=
0.4378 0.0005 0.2057 0.4252 0.0801
0.3142 0.1231 0.3293 0.5488 0.0435
0.5610 0.1237 0.0825 0.3020 0.2033
0.1487 0.2886 0.4948 0.7144 0.2090
0.2503 0.1870 0.3932 0.6127 0.1074
最亲密的距离是0.000470,发生在N的第2行和V的第1行之间
3评论
图像分析
图像分析 2017年11月10日
for循环有什么问题?那么ni和vi是什么?

登录评论。


埃斯瓦尔·阿拉文德·斯瓦米·阿达利
你好,
我有一个矩阵a的大小为[30x36], B的大小为[38x36]。我怎么找到最近的一对?
这些都是HOG描述符的块大小为16x16,单元格大小为8x8。我在找最接近的HOG描述符。
提前谢谢。

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!