Передача 2d матрицы и вектора - надежная матрица * Функция вычисления вектора - PullRequest
0 голосов
/ 22 марта 2019

Я пытаюсь построить надежную матричную * векторную функцию вычисления (MatVec), которая требует, чтобы я передал 2d квадратную матрицу A и 1d массив V с n в качестве числа строк или столбцов.Здесь две вещи:

  1. Я не знаю, как заставить эту функцию возвращать вектор X и основную функцию, чтобы взять этот вектор, чтобы его можно было использовать позже.

  2. Другое дело, что я не хочу передавать матрицу с известным номером столбца, например arr [] [3], в качестве параметра функции, чтобы сделать ее более устойчивой.

Любые идеи в этом конкретном случае будут высоко оценены.

int *MatVec(int *A,int V[],int n)
{
    int C[n];
    for(int i = 0; i<n;i++)
    {
        C[i] = innerprod(*(A+i*n),V,n);
    }
    return C;
}

int innerprod(int v[], int u[],int n)
{   
    double result = 0.0;
    for (int i = 0; i < n; i++)
    {
        result += v[i]*u[i];
        //printf("%d\n",v[i]*u[i]);
    }    
    return result;
}

int main()
{   
    int n = 2;
    int C[n];
    int A[2][2] = {{1,2},{3,4}};
    int V[2] = {3,4};
    int W[2] = {7,-2};
    int *c = MatVec((int *)A,V,n);
    for(int i = 0; i < n ;i++)
    {
        printf("%d\n",*(c+i));
    }
}
...