我有以下的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,如所預期。