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
| X | Y | Z | Group |
---|
1 | 2.92950958039837 | -8.8212047083165 | -0.500724467432578 | 38 |
---|
2 | -2.83385850934452 | 1.58890966629247 | -6.51144861146751 | 49 |
---|
3 | -7.54170352938765 | -6.64183028720501 | -1.41345116169187 | 94 |
---|
4 | -7.63006378119553 | 0.625619467059979 | -0.632396471423791 | 25 |
---|
5 | 4.58459566299567 | -9.54525873188892 | -1.88726672097994 | 8 |
---|
6 | -8.24532739872884 | 6.70774646628061 | -3.40853027107689 | 39 |
---|
7 | -5.08869188415844 | 4.65288441972054 | -3.94380314528626 | 79 |
---|
8 | 7.08565659118703 | 9.42674096553708 | -7.43827859727131 | 94 |
---|
该数据的第一列表示横坐标X, 第二列表示纵坐标Y, 第三列表示页坐标Z, 第四列表示分组
现在要求分组间的最小距离, 分组间的最小距离为两个分组中任意两点之间的距离的最小值,
需要实现一个函数,输入inputdata, 输出两个分组间的距离的矩阵
结果如下:
result = compute(inputdata);
toc
Elapsed time is 29.715973 seconds.