向量操作

题目

我们给定一个二维数组,如下:
rng(923)
n = 1e4;
data = num2cell([unifrnd(-10, 10, n, 3), randi(1e2, [n, 1])],1);
inputdata = table(data{:}, 'VariableNames', {'X', 'Y', 'Z', 'Group'});
head(inputdata) % 只是显示了前8组
ans = 8×4 table
XYZGroup
12.92950958039837-8.8212047083165-0.50072446743257838
2-2.833858509344521.58890966629247-6.5114486114675149
3-7.54170352938765-6.64183028720501-1.4134511616918794
4-7.630063781195530.625619467059979-0.63239647142379125
54.58459566299567-9.54525873188892-1.887266720979948
6-8.245327398728846.70774646628061-3.4085302710768939
7-5.088691884158444.65288441972054-3.9438031452862679
87.085656591187039.42674096553708-7.4382785972713194
该数据的第一列表示横坐标X, 第二列表示纵坐标Y, 第三列表示页坐标Z, 第四列表示分组
现在要求分组间的最小距离, 分组间的最小距离为两个分组中任意两点之间的距离的最小值,
需要实现一个函数,输入inputdata, 输出两个分组间的距离的矩阵
结果如下:
tic
result = compute(inputdata);
toc
Elapsed time is 29.715973 seconds.

评价标准

  1. 计算结果正确
  2. 按照执行时间长短排序