3

我有以下 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'
4

2 回答 2

5

如果质心是指矩阵的“质心”,则需要考虑矩阵中每个“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,正如预期的那样。

于 2011-12-03T18:40:29.113 回答
2

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

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

centroid = mean(A);

mean默认情况下,上面的调用对行进行操作。如果要获取 的列的质心A,则需要调用mean如下:

centroid = mean(A, 2);
于 2011-12-02T21:47:22.527 回答