我试图实现2个矩阵,我必须使用,而不需要用户输入并将它们相乘。但是,它们有不同的尺寸。我将如何编写这个代码?我从字面上试图删除我的代码并重新启动它。矩阵:不同的尺寸+执行
main(void){
int B[4][3] = {{1,0,0}, {1,0,1},{1,1,0},{1,1,1}};
int Y[1][4] = {{1}, {1}, {1}, {0}};
}
我试图实现2个矩阵,我必须使用,而不需要用户输入并将它们相乘。但是,它们有不同的尺寸。我将如何编写这个代码?我从字面上试图删除我的代码并重新启动它。矩阵:不同的尺寸+执行
main(void){
int B[4][3] = {{1,0,0}, {1,0,1},{1,1,0},{1,1,1}};
int Y[1][4] = {{1}, {1}, {1}, {0}};
}
int Y[1][4] = {{1}, {1}, {1}, {0}};
是不对的。这对于4 x 1
阵列是很好的。
int Y[4][1] = {{1}, {1}, {1}, {0}};
你需要的是:
int Y[1][4] = {{1, 1, 1, 0}};
现在你可以繁殖。
int main()
{
int B[4][3] = {{1,0,0}, {1,0,1},{1,1,0},{1,1,1}};
int Y[1][4] = {{1, 1, 1, 0}};
int R[1][3] = {0};
for (int i = 0; i < 1; ++i)
{
for (int j = 0; i < 3; ++j)
{
for (int k = 0; i < 4; ++k)
{
R[i][j] += Y[i][k]*B[k][j]
}
}
}
}
啊好的!我现在明白了! –
我不需要转置矩阵B为了它是一个3X4? 然后乘以转置Y矩阵,所以它可以是3X4和4X1? –
所以你试过这个。它一定没有工作或者你不会在这里。但是,不工作是一个症状,也是一个结果。对于你的问题,未来的读者应该在知道发生了什么事情的时候有天赋。错误讯息?警告?无关的荣誉是为了报废你之前做的事情,并重新开始这个绝对最小的代码。 – WhozCraig
无法将4x3矩阵与4x1相乘。内部尺寸可以匹配(例如,3x4与4x1) –
是的,我记得,它是一个1x4,我只是有时混淆了行和列。 –