让一群最大的元素。
6视图(30天)
显示旧的评论
如果我有一些点和数据。我需要找点的最近的所有元素。我怎么能这样做呢?请帮助我。
接受的答案
Guillaume
2020年3月12日
请注意,下面创建一个临时的矩阵的大小
元素个数(A) x元素个数(B)
,所以如果两个向量是非常大的你可能会耗尽内存:
%为行向量:
%示例数据
= (1、4、2、6、9 0,4.2,5.6);
B = (0.1, 4.1, 3);
& & isrow断言(isrow (A) (B),输入必须为行向量的);
[~,groupA] = min (abs (A - B。'), [], 1)
%为列向量:
%演示数据
=。”;B = B。';
& & iscolumn断言(iscolumn (A) (B),输入必须是列向量的)
[~,groupA] = min (abs (A。”——B), [], 1)
10评论
Guillaume
2020年3月17日
我已经说过了,这是典型的
坏主意
。我是问你想做什么。很可能不管它是什么,这将是
多
如果你不这样做更容易。
现在如果你真的坚持:
组= accumarray ((:), groupnumber (:), [], @ (v) {v});
或
v组= splitapply (@ (v) {}, (:), groupnumber (:));