Multipying each element of a matrix with average of elements in other matrix
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Hari
el 14 de Jul. de 2021
Comentada: Hari
el 14 de Jul. de 2021
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 comentarios
Respuesta aceptada
Simon Chan
el 14 de Jul. de 2021
Try this:
[Ny,Nx]=size(A);
[X,Y]=meshgrid(1:Nx,1:Ny);
w = (B(X)+B(Y))/2;
C = A.*w
Más respuestas (1)
Image Analyst
el 14 de Jul. de 2021
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);
end
end
A % Show in command window.
Ver también
Categorías
Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!