Average of Multiple Matrices along ColumnsΒΆ
This is an example of computing the elementwise average of the axiswise average of matrices M1 ad M2 along the columns.
from openmdao.api import Problem
from omtools.api import Group
import omtools.api as ot
import numpy as np
class ExampleMultipleMatrixAlong0(Group):
def setup(self):
n = 3
m = 6
# Declare a matrix of shape 3x6 as input
M1 = self.declare_input('M1', val=np.arange(n * m).reshape((n, m)))
# Declare another matrix of shape 3x6 as input
M2 = self.declare_input('M2',
val=np.arange(n * m, 2 * n * m).reshape(
(n, m)))
# Output the elementwise average of the axiswise average of matrices M1 ad M2 along the columns
self.register_output('multiple_matrix_average_along_0',
ot.average(M1, M2, axes=(0, )))
prob = Problem()
prob.model = ExampleMultipleMatrixAlong0()
prob.setup(force_alloc_complex=True)
prob.run_model()
print('M1', prob['M1'].shape)
print(prob['M1'])
print('M2', prob['M2'].shape)
print(prob['M2'])
print('multiple_matrix_average_along_0', prob['multiple_matrix_average_along_0'].shape)
print(prob['multiple_matrix_average_along_0'])
M1 (3, 6)
[[ 0. 1. 2. 3. 4. 5.]
[ 6. 7. 8. 9. 10. 11.]
[12. 13. 14. 15. 16. 17.]]
M2 (3, 6)
[[18. 19. 20. 21. 22. 23.]
[24. 25. 26. 27. 28. 29.]
[30. 31. 32. 33. 34. 35.]]
multiple_matrix_average_along_0 (6,)
[15. 16. 17. 18. 19. 20.]