gpt4 book ai didi

c++ - 我想表达一个 2by2 矩阵的乘积

转载 作者:行者123 更新时间:2023-12-01 13:11:47 25 4
gpt4 key购买 nike

我想输出 2 乘以 2 矩阵的结果。
我试图对矩阵元素进行硬编码,但我不擅长使用循环来显示它们。我已经尝试了几次。

#include <iostream>

using namespace std;

int main()
{
int m1[2][2]
{
{1, 2},
{3, 4},
};

int m2[2][2]
{
{5, 6},
{7, 8},
};

int m3[2][2] = {0};
// int m3[2][2] = {{1,2},{3,4}};

// m3[0][0] = m1[0][0] * m2[0][0] + m1[0][1] * m2[1][0];
// m3[0][1] = m1[0][0] * m2[0][1] + m1[0][1] * m2[1][1];

// m3[1][0] = m1[1][0] * m2[0][0] + m1[1][1] * m2[1][0];
// m3[1][1] = m1[1][0] * m2[0][1] + m1[1][1] * m2[1][1];

int multiplyTemp1;
int multiplyTemp2;
for (int row = 0; row < 2; ++row)
{
for (int col = 0; col < 2; ++col)
{
// m3[row][row] += m1[row][col] * m2[col][row];
m3[row][col] += m3[row][col] * m3[col][row];
// if (row == 0 || row == 1)
// {
// multiplyTemp1 += m1[row][col] * m2[col][row];
// }
}
cout << endl;
}
// cout << multiplyTemp1 << " ";
// cout << endl;

/*
m3 = [00, 01]
[10, 11]
*
*/
for (int row = 0; row < 2; ++row)
{
for (int col = 0; col < 2; ++col)
{
cout << m3[row][col] << '\t';
}
cout << endl;
}
// for (int i = 0; i < 2; ++i)
// {
// for (int j = 0; j < 2; ++j)
// {
// // {1, 2} {5, 6}
// // {3, 4} {7, 8}
// m3[i][j] = m1[i][j] * m2[j][i] + m1[i][j + 1] * m2[j + 1][i];
// cout << m3[i][j] << "\t";
// }
// cout << endl;
// }



return 0;
}

====

我想像这样打印到控制台:
image
我附上了一张图片

这样,只显示了对角线分量。
我怎样才能循环显示它?
不能用双 for 循环显示吗?
19 0
0 50

谢谢你。

最佳答案

您对乘法和两个矩阵的逻辑有点错误。您必须使用第三个循环来获得正确的结果,如下所示:

 m3[row][col] = 0; 
for (int k = 0; k < 2; k++)
m3[row][col] += m1[row][k] *
m2[k][col];

以下是完整的工作代码。
#include <iostream>

using namespace std;

int main()
{
int m1[2][2]
{
{1, 2},
{3, 4},
};

int m2[2][2]
{
{5, 6},
{7, 8},
};

int m3[2][2] = {0};

int multiplyTemp1;
int multiplyTemp2;
for (int row = 0; row < 2; ++row)
{
for (int col = 0; col < 2; ++col)
{
m3[row][col] = 0;
for (int k = 0; k < 2; k++)
m3[row][col] += m1[row][k] *
m2[k][col];
}
cout << endl;
}
for (int row = 0; row < 2; ++row)
{
for (int col = 0; col < 2; ++col)
{
cout << m3[row][col] << '\t';
}
cout << endl;
}
}

关于c++ - 我想表达一个 2by2 矩阵的乘积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59517864/

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