矩阵乘以C中的向量

时间:2018-06-07 13:32:56

标签: c

我有一个矩阵[2] [3],一个向量[3],我用下面的代码计算结果,完全正常。 我的方法:将大小为[3] [2]的乘积矩阵初始化为零,按函数 matrix_x_vector 执行计算,并提取最后一行以获得最终输出(向量)。 我的期望:不是使用大小为[3] [2]的乘积矩阵,然后从中提取向量,而是将矩阵乘以向量并将其直接存储到合成向量中。

#include <stdio.h>
int main()
{
    // Define Variables
    int n1 = 2, n2= 3;
    int vector[3] = {2,1,2};
    int matrix[2][3] = {
            {1,-1,2},
            {2,-3,1},
    };
    int Product_matrix[3][2] = {
            {0},
            {0},
            {0}
    };
    // Define Functions
    void matrix_x_vector(int n1,int n2, int vector[n2], int matrix[n1][n2], int Product[n1][n2]); // Performs the calculation
    // Execute Functions
    matrix_x_vector(n1, n2, vector, matrix, Product_matrix);
    printf("\n");
    return 0;
}

void matrix_x_vector(int n1,int n2, int vector[n2], int matrix[n1][n2], int Product[n1][n2])
{
    int i, j; // i = row; j = column;
    printf("\nProduct Matrix of [x]*[y]\n");
    // Load up A[n][n]
    for (i=0; i<n2; i++)
    {
        for (j=0; j<n1; j++)
        {
            Product[j][0] += matrix[j][i] * vector[i];
            printf("%4i", Product[j][0]);
        }
        printf("\n");
    }
    printf("Vector: \n");
    // Print Vector from Product[n][n]
    for (i=0; i<n1; i++){
        printf("%4i\n", Product[i][0]);
    }
}

[x] * [y]的产品矩阵

   2   4
   1   1
   5   3

矢量:

 5
 3

1 个答案:

答案 0 :(得分:0)

如果我正确理解了这个问题,就会要求一个函数使用向量而不是矩阵作为结果类型。该功能可以表述如下。

    Fatal error: Uncaught exception 'Google\Cloud\Exception\ConflictException' with message
   '{ "error": { "code": 409, "message": "too much contention on these datastore entities.       
  please try again. entity groups:[(app=s~test-154434, demo, 4564)]", "status": "ABORTED" } } '
  in C:\xampp\htdocs\folder_name\vendor\google\cloud\src\RequestWrapper.php:219