2
我想要獲取矩陣中的行的平均值,並從該行中的值中減去該值的平均值,並將該值成爲相應的矩陣。我已經爲一些循環做了這個循環,但我想從這些代碼中移開。我是一位正在嘗試學習如何在Matlab中完成而不使用for循環的程序員。任何幫助是極大的讚賞。獲取從一個值減去矩陣中的一行的平均值,並將其放入另一個矩陣
A = [ 1 3 5; mean = 3
2 5 5; mean = 4
3 4 8; ]; mean = 5
B = [|B_11-mean| |B_12-mean| |B_13-mean|
|B_21-mean| |B_22-mean| |B_23-mean|
|B_31-mean| |B_32-mean| |B_33-mean|];
B = [ 2 0 2;
2 1 1;
2 1 3; ];
下面是我正在使用的代碼。我計劃擴展到一個更大的數據集,所以我想盡可能提高效率。
[rows columns] = size(A);
B = zeros(rows, columns);
mean_row = mean(A.');
for j=1:rows
for i=1:columns
B(j,i) = abs(A(j, i) - mean_row(1,columns));abs(A(j, i) - mean_row(1,columns));
end
end
我一直在做關於如何做到這一點沒有for循環,以及如何更有效地創建了矩陣B的研究,但我一直沒能得到它的權利。任何幫助表示讚賞。謝謝!
+1'bsxfun'一個完美的情況下! –
感謝您的答案,但它不會返回我正在尋找的矩陣。請參閱最新的問題。 – user2743
@ user2743您是否提供了與您展示的相同的輸入內容?我非常懷疑它,因爲在我的結果輸出完全相同的預期。請檢查測試更新的答案。 – jkshah