Multipying each element of a matrix with average of elements in other matrix
조회 수: 2(최근 30일)
표시 이전 댓글
I have a 3x3 matrix(A) with all diagonal elements 0, and 3x1 matrix(B). I want to multiply each element of the 3x3 matrix using elements from the 3x1 matrix in the following way: element A(1,2) will be multipled by the average of elements at position 1 and 2 in B.
Similarly each element in A will be multiplied by average of corresponding elements in B.
Is there a way to do this.
댓글 수: 0
Simon Chan 2021년 7월 14일
w = (B(X)+B(Y))/2;
C = A.*w
Image Analyst 2021년 7월 14일
Did you try the obvious and simple for loop?
% Create sample data.
A = rand(3);
A(logical(eye(3))) = 0
B = rand(3, 1)
% Now we have our data and can begin...
for col = 1 : 3
for row = 1 : 3
factor = mean([B(row), B(col)]);
A(row, col) = factor * A(row, col);
A % Show in command window.
Find more on Operating on Diagonal Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!