让一群最大的元素。

6视图(30天)
如果我有一些点和数据。我需要找点的最近的所有元素。我怎么能这样做呢?请帮助我。
2的评论
BHAGYALAKSHMI米
BHAGYALAKSHMI米 2020年3月12日
编辑:BHAGYALAKSHMI米 2020年3月12日
最近的元素接近每一个点。我在这里atttached数据。
假设我有一些元素= (1、4、2、6、9 0,4.2,5.6,....),点
B = (0.1, 4.1, 3 .......)。计算和比较这些基于分组的距离。
带点1的检查这个元素接近0.1或4.1。这是接近1比4
G1 = [0.1]。
在4点。它接近4.1
G2 = (4.1 4)。
2是接近3,所以
G3 = [2,3]。
与其他人相比,6接近4.1
G2 = (4.1 4)。
重复这个过程,直到没有元素。
我怎么能这样做呢?请帮助我。

登录置评。

接受的答案

Guillaume
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)
我不知道这应该是数据表应用到你的例子。看它包含什么,你应该在一个表导入excel文件,在这种情况下你应该存储表的组织为另一个变量,所以你可以使用聚合等功能 groupsummary
10评论
Guillaume
Guillaume 2020年3月17日
我已经说过了,这是典型的 坏主意 。我是问你想做什么。很可能不管它是什么,这将是 如果你不这样做更容易。
现在如果你真的坚持:
组= accumarray ((:), groupnumber (:), [], @ (v) {v});
v组= splitapply (@ (v) {}, (:), groupnumber (:));

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!