当前位置: 首页 > 知识库问答 >
问题:

用struct实现两个矩阵的相加

澹台昆
2023-03-14
g++ -O2 -Wall program.cpp -o program

产出:

在文件include from/usr/include/C++/4.8/IOStream:39:0、from proy3.cpp:2:/usr/include/C++/4.8/ostream:548:5:注意:模板std::basic_ostream&std::operator<<(std::basic_ostream&,const无符号char*)操作符<<(Basic_ostream&__out,const无符号char*_s)^/usr/include/c++/4.8/ostream:548:5:注意:模板参数扣减/替换失败:proy3.cpp:51:30:注意:::BASIC_OSTREAM'cin<<&M2.x[i][j];

代码:

# include < cstdio >
# include < iostream >


typedef struct Matrix
{
    int row, column;
            int x[20][20];
};

Matrix M1,M2;

int main(){

cout << "Insert size rows: Mat[a]";
cin >> M1.row);

cout << "Insert size of columns Mat[a]";
cin >> M1.column;


cout << "Insert size of rows Mat[b]";
cin >> M2.row;

cout << "Insert size of columns Mat[b]";
cin >> M2.column;

int i, j;

   // Matrix x

    for(i = 0; i <= M1.row; i++)
{
        for(j = 0; j <= M1.column; j++)
        {
        cout << "Insert number for matrix X : \n";
        cin >> M1.x[i][j]
        }
}

       // Matrix y

    for(i = 0; i <= M2.row; i++)
{
        for(j = 0; j <= M2.column; j++)
        {
        cout << "Insert number for matrix Y : \n";
        cin << M2.x[i][j];
        }
}

// Matrix X + Matrix Y

for(i = 0; i <= M1.row; i++)
{
    for(j = 0; j < M1.column; j++)
    {
        cout <<"The sum of " << M1.x[i][j] << " + " <<  M2.x[i][j] << " = " << M1.x[i][j] +  M2.x[i][j] << endl;
    }
}
return 0;

}

共有1个答案

有翰海
2023-03-14
  for(i = 0; i <= M2.M1.row; i++)
 {
    for(j = 0; j <= M2.M1.column; j++)
    {
    cout << "Insert number for matrix Y : \n";
    cin << &M2.M1.y[i][j];   
    }
  }

您没有试图访问的m2.m1.y这样的元素。另外,为什么要在M2中声明M1呢?您可以只有一个结构和两个实例

struct matrix
{
    int row,column;
    int X[20][20];
};
struct matrix M1,M2;

现在可以输入这两个矩阵了。

另外,您必须使用CIN>>A而不是CIN>>&A

 cin >> M2.x[i][j];
    ^^^^
 类似资料:
  • 本文向大家介绍C语言实现两个矩阵相乘,包括了C语言实现两个矩阵相乘的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C语言实现两个矩阵相乘的具体代码,供大家参考,具体内容如下 程序功能:实现两个矩阵相乘的C语言程序,并将其输出 代码如下: 运行结果: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍在Python中使用Numpy将两个矩阵相乘,包括了在Python中使用Numpy将两个矩阵相乘的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将学习如何使用Python中的NumPy库将两个矩阵相乘。使用NumPy库很简单。 它有一个称为点的矩阵乘法方法。您可以使用以下命令安装NumPy库。 让我们看看程序中涉及的步骤。 导入NumPy库。 初始化矩阵。 将矩阵与nump

  • 我有两个矩形,每个矩形有4个值: 左侧位置< code>X、顶部位置< code>Y、宽度< code>W和高度< code>H: 矩形不旋转,如下所示: 判断两个矩形的交集是否为空的最佳解是什么?

  • 本章节主要给大家引入视图矩阵和投影矩阵两个新的概念,如果你没有图形学基础,对这两个概念暂时还没有认知,也没有关系。通过前面的学习相信你对平移、旋转等矩阵有了一定的认知,至于投影和视图矩阵和平移、旋转等模型矩阵一样也会对WebGL顶点进行坐标变换,至于如何变换下面会逐步讲解。 在学习本章节之前,如果你对Three.js已经有了一定的了解,可以尝试从WebGL视图矩阵和投影矩阵的角度去深入理解Thre

  • 我喜欢将具有相同行的两个矩阵的列的所有可能组合相乘。这意味着两个矩阵,例如和将生成包含元素的3x4矩阵。(和表示从1到3的行,表示从1到4的列) 我已经创建了一个例子,可以完成这项工作,但正在寻找没有for循环的优雅解决方案。 这里a是3x3矩阵,b是3x4矩阵,comb通过乘以各个列给出3x12矩阵的输出。我正在寻找优雅的解决方案,可以推广到这样的乘法到两个以上的矩阵。

  • 我正在计算两大组向量(具有相同特征)之间的余弦相似度。每组向量表示为一个scipy CSR稀疏矩阵a和B。我想计算一个x B^T,它不会稀疏。但是,我只需要跟踪超过某个阈值的值,例如0.8。我正试图用vanilla RDD在Pyspark中实现这一点,目的是使用为scipy CSR矩阵实现的快速向量操作。 A和B的行是标准化的,所以为了计算余弦相似度,我只需要找到A中每一行与B中每一行的点积。A的