gpt4 book ai didi

c++ - 在 C++ 中将矩阵相加

转载 作者:太空宇宙 更新时间:2023-11-04 13:36:16 26 4
gpt4 key购买 nike

作为我正在编写的程序的一部分,我编写了一个代码段来将两个矩阵相加。它们都保证是正方形的,并且大小相同,但矩阵尺寸是可变的,我不完全确定它们会是什么(尽管我应该能够在执行之前立即确定,因为我会有矩阵 - 对吧?)我的代码如下:

double MatrixAdder( double A, double B, int MatrixSize )
{
vector <double> C[ MatrixSize ] [ MatrixSize ] ;
int i, j ;

for ( i = 0 ; i < MatrixSize ; i++ )
{
for ( j = 0 ; j < MatrixSize ; j++ )
{
C[ i ][ j ] = A[ i ][ j ] + B[ i ][ j ] ;
} ;
} ;
} ;

我不断遇到以下错误:

数组下标的无效类型'double[int]'

它标记了 C[ i ][ j ] = A[ i ][ j ] + B[ i ][ j ] 的 A[ i ][ j ] 和 B[ i ][ j ] 部分。

我从我看过的其他答案中得到的印象是我可能需要定义一个新的 double(int) 函数来克服这个问题,但我真的不确定如何克服这个问题。

附言很抱歉,如果这不是很清楚 - 这是我的第一篇文章,我会尝试按要求提供说明。

最佳答案

问题出在你的输入参数A & B这是double .

如果你想使用 vector ,你应该使用:vector<vector<double>>

vector<vector<double>> MatrixAdder(const vector<vector<double>>& A, const vector<vector<double>>& B)
{
vector<vector<double>> C (A.size());
int i, j ;

for ( i = 0 ; i < A.size() ; i++ )
{
C[i].resize(A[i].size());
for ( j = 0 ; j < A[i].size() ; j++ )
{
C[ i ][ j ] = A[ i ][ j ] + B[ i ][ j ] ;
}
}

return C;
}

请注意,使用此解决方案,您无需传递数组大小。

关于c++ - 在 C++ 中将矩阵相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29449378/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com