Я пытаюсь построить надежную матричную * векторную функцию вычисления (MatVec), которая требует, чтобы я передал 2d квадратную матрицу A и 1d массив V с n в качестве числа строк или столбцов.Здесь две вещи:
Я не знаю, как заставить эту функцию возвращать вектор X и основную функцию, чтобы взять этот вектор, чтобы его можно было использовать позже.
Другое дело, что я не хочу передавать матрицу с известным номером столбца, например 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));
}
}