我有以下的5×5矩阵答:计算矩阵的质心
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'
我的线性代数很生锈,所以我希望能通过手工来完成,以帮助我弄清楚如何在matlab中进行编程。提前致谢。
我不确定如何得到质心。帮助和步骤,将不胜感激。先谢谢你。
我有以下的5×5矩阵答:计算矩阵的质心
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'
我的线性代数很生锈,所以我希望能通过手工来完成,以帮助我弄清楚如何在matlab中进行编程。提前致谢。
我不确定如何得到质心。帮助和步骤,将不胜感激。先谢谢你。
质心就是每个维度单独计算的平均值。
要找到每个矩阵A
的行的重心,你可以调用mean
功能:
centroid = mean(A);
到mean
以上调用默认的行操作。如果你想获得的A
列的心,那么你需要调用mean
如下:
centroid = mean(A, 2);
如果通过重心意味着对矩阵“质心”,你需要考虑的每个'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和Y = 3;
对于
M = [1 0 0;
0 0 0;
0 0 1];
结果为CX = 2; Y = 2,如所预期。