如何计算一个矩阵的质心



我有以下5x5矩阵A:

1 0 0 0 0 
1 1 1 0 0 
1 0 1 0 1 
0 0 1 1 1 
0 0 0 0 1

我试图在MATLAB中找到质心,所以我可以找到散点矩阵:

Scatter = A*Centroid*A'

如果质心是指矩阵的"质心",则需要考虑每个"1"在矩阵中的位置。我在下面使用了meshgrid函数:

M =[    1 0 0 0 0; 
        1 1 1 0 0; 
        1 0 1 0 1; 
        0 0 1 1 1; 
        0 0 0 0 1];
[rows cols] = size(M);
y = 1:rows;
x = 1:cols;
[X Y] = meshgrid(x,y);
cY = mean(Y(M==1))
cX = mean(X(M==1))

产生cX=3和cY=3;

M = [1 0 0;
     0 0 0;
     0 0 1];

结果是cX=2;cY=2,如预期。

质心就是每个维度单独计算的平均值。

要找到矩阵A的每一行的质心,可以调用mean函数:

centroid = mean(A);

上面对mean的调用默认对行进行操作。如果您想获得A列的质心,那么您需要按如下方式调用mean:

centroid = mean(A, 2);

相关内容

  • 没有找到相关文章

最新更新