Average matrix values across diagonal
10 ビュー (過去 30 日間)
古いコメントを表示
Hi all :)
I have an asymmetric structural connectivity matrix size 376 by 376 where the elements Cij and Cji are different. What I am trying to do is to average the values contained in Cij and Cji so that I have a symmetric matrix. Sp basically I am trying to average values "across the diagonal" of my matrix.
Any help would be appreciated!
Thanks :)
0 件のコメント
回答 (1 件)
Asmit Singh
2021 年 6 月 28 日
Hey, I think this is what you require. This basically takes a mean over the diagonally opposite numbers, to create a symmetrical matrix.
% replace with the needed matrix
matrix = [1,2,3 ; 4,5,6 ; 7,8,9];
display(matrix)
% row/column size
siz = size(matrix);
n = siz(1);
for i= 1:n
for j = i:n
matrix(i,j) = (matrix(i,j)+matrix(j,i))/2;
matrix(j,i) = matrix(i,j);
end
end
display(matrix);
参考
カテゴリ
Help Center および File Exchange で Operating on Diagonal Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!