错误使用 .* 矩阵维度必须一致。 出错 quanguocheng (line 37) center_of_mass = sum(selected_points(:, 1:3).*selected_points(:, 4), 1) ./ sum(selected_points(:, 4));
时间: 2024-03-04 22:48:43 浏览: 11
这个错误通常是因为矩阵维度不一致导致的。在这里,可能是因为 `selected_points` 矩阵的维度不正确造成的。请检查 `selected_points` 的维度是否正确,即是否是一个 n 行 4 列的矩阵,其中 n 表示符合要求的点的个数。
如果 `selected_points` 矩阵的维度正确,那么这个错误可能是由于矩阵的乘法运算符 `.*` 左右两边的矩阵维度不匹配导致的。在这里,我们需要将 `selected_points(:, 1:3)` 和 `selected_points(:, 4)` 的维度进行调整,使其能够进行乘法运算。可以使用 `repmat` 函数将 `selected_points(:, 4)` 扩展成一个 n 行 3 列的矩阵,然后再进行乘法运算。代码如下:
```matlab
% 计算符合要求的点的质心坐标和质量大小
weights = repmat(selected_points(:, 4), 1, 3);
center_of_mass = sum(selected_points(:, 1:3).*weights, 1) ./ sum(selected_points(:, 4));
mass_sum = sum(selected_points(:, 4));
```
这样就可以解决这个错误了。