在MATLAB中计算离散三维点的Sz、Sds、Ssc、Sdr、Sdq、Std、Sal、Str、Smr、Sxp、Vmp、Vmc
时间: 2023-07-03 14:05:25 浏览: 398
计算离散三维点的Sz、Sds、Ssc、Sdr、Sdq、Std、Sal、Str、Smr、Sxp、Vmp、Vmc可以按照以下步骤进行:
1. 首先,将三维点的坐标表示为一个 Nx3 的矩阵,其中每行表示一个点的坐标。
2. 计算每个点与其他点之间的距离,可以使用 pdist 函数。该函数将返回一个 N*(N-1)/2 的距离矩阵。其中,第 i 行第 j 列的元素表示第 i 个点到第 j 个点的距离。
```
D = pdist(points);
```
3. 计算 Sz,表示所有距离的标准差。
```
Sz = std(D);
```
4. 计算 Sds,表示所有距离的平均数的标准差。
```
Sds = std(mean(D));
```
5. 计算 Ssc,表示所有距离的中位数的标准差。
```
Ssc = std(median(D));
```
6. 计算 Sdr,表示所有距离的范围的标准差。
```
Sdr = std(range(D));
```
7. 计算 Sdq,表示所有距离的四分位距的标准差。
```
Sdq = std(iqr(D));
```
8. 计算 Std,表示所有距离的标准偏差的标准差。
```
Std = std(std(D));
```
9. 计算 Sal,表示所有点的平均距离的标准差。
```
Sal = std(mean(D,2));
```
10. 计算 Str,表示所有点到原点的距离的标准差。
```
Str = std(sqrt(sum(points.^2,2)));
```
11. 计算 Smr,表示所有点之间的中心距离的标准差。
```
centroid = mean(points);
Dc = pdist([centroid; points]);
Smr = std(Dc(2:end));
```
12. 计算 Sxp,表示所有点到一个平面的平均距离的标准差。
```
[~,normal] = fitplane(points);
Sxp = std(abs(points*normal));
```
13. 计算 Vmp,表示所有点的平均体积。
```
Vmp = mean(prod(max(points)-min(points)));
```
14. 计算 Vmc,表示所有点的最小包围立方体的体积。
```
Vmc = prod(max(points)-min(points));
```
阅读全文