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.]