📜  求矩阵的均值向量

📅  最后修改于: 2021-04-29 18:39:17             🧑  作者: Mango

给定大小为M x N的矩阵,任务是找到给定矩阵的均值向量
例子:

Input : mat[][] = {{1, 2, 3},
                   {4, 5, 6},
                   {7, 8, 9}}       
Output : Mean Vector is [4 5 6]
Mean of column 1 is (1 + 4 + 7) / 3 = 4
Mean of column 2 is (2 + 5 + 8) / 3 = 5
Mean of column 3 is (3 + 6 + 9) / 3 = 6

Input : mat[][] =  {{2, 4},
                    {6, 8}}
Output : Mean Vector is [4 6]
Mean of column 1 is (2 + 6) / 2 = 4
Mean of column 2 is (4 + 8) / 2 = 6

方法:
让我们取一个尺寸为5×3的矩阵,代表5个对象的长度,宽度,高度。
现在,所得的均值向量将是以下格式的行向量:

[mean(length) mean(breadth)  mean(height)]

注意:如果我们有一个维度为M x N的矩阵,那么所得的行向量将为维度1 x N
现在,只需计算矩阵每一列均值,即可得出所需的均值向量。

C++
// C++ program to find mean vector
// of given matrix
#include 
using namespace std;
#define rows 3
#define cols 3
 
// Function to find mean vector
void meanVector(int mat[rows][cols])
{
    cout << "[ ";
 
    // loop to traverse each column
    for (int i = 0; i < rows; i++) {
 
        // to calculate mean of each row
        double mean = 0.00;
 
        // to store sum of elements of a column
        int sum = 0;
 
        for (int j = 0; j < cols; j++)
            sum += mat[j][i];
 
        mean = sum / rows;
        cout << mean << " ";
    }
 
    cout << "]";
}
 
// Drivers code
int main()
{
 
    int mat[rows][cols] = { { 1, 2, 3 },
                            { 4, 5, 6 },
                            { 7, 8, 9 } };
 
    meanVector(mat);
 
    return 0;
}


Java
// Java program to find
// mean vector of given matrix
import java.io.*;
 
class GFG
{
static int rows = 3;
static int cols = 3;
 
// Function to
// find mean vector
static void meanVector(int mat[][])
{
    System.out.print("[ ");
 
    // loop to traverse
    // each column
    for (int i = 0; i < rows; i++)
    {
 
        // to calculate mean
        // of each row
        double mean = 0.00;
 
        // to store sum of
        // elements of a column
        int sum = 0;
 
        for (int j = 0; j < cols; j++)
            sum += mat[j][i];
 
        mean = sum / rows;
        System.out.print((int)mean + " ");
    }
 
    System.out.print("]");
}
 
// Driver code
public static void main (String[] args)
{
    int mat[][] = {{1, 2, 3},
                   {4, 5, 6},
                   {7, 8, 9}};
 
    meanVector(mat);
}
}
 
// This code is contributed
// by anuj_67.


Python3
# Python3 program to find
# mean vector of given
# matrix
rows = 3;
cols = 3;
 
# Function to
# find mean vector
def meanVector(mat):
    print("[ ", end = "");
 
    # loop to traverse
    # each column
    for i in range(rows):
         
        # to calculate
        # mean of each row
        mean = 0.00;
 
        # to store sum of
        # elements of a column
        sum = 0;
 
        for j in range(cols):
            sum = sum + mat[j][i];
 
        mean = int(sum /rows);
        print(mean, end = " ");
 
    print("]");
 
# Driver Code
mat = [[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]];
 
meanVector(mat);
 
# This code is contributed
# by mits


C#
// C# program to find
// mean vector of given matrix
using System;
 
class GFG
{
static int rows = 3;
static int cols = 3;
 
// Function to
// find mean vector
static void meanVector(int [,]mat)
{
    Console.Write("[ ");
 
    // loop to traverse
    // each column
    for (int i = 0; i < rows; i++)
    {
 
        // to calculate mean
        // of each row
        double mean = 0.00;
 
        // to store sum of
        // elements of a column
        int sum = 0;
 
        for (int j = 0; j < cols; j++)
            sum += mat[j, i];
 
        mean = sum / rows;
        Console.Write((int)mean + " ");
    }
 
    Console.Write("]");
}
 
// Driver code
public static void Main ()
{
    int[,] mat = {{1, 2, 3},
                  {4, 5, 6},
                  {7, 8, 9}};
 
    meanVector(mat);
}
}
 
// This code is contributed
// by anuj_67.


PHP


Javascript


输出:
[ 4 5 6 ]

时间复杂度: O(行*列)