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