2016-09-12 215 views
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}}; 
} 
+0

所以你试过这个。它一定没有工作或者你不会在这里。但是,不工作是一个症状,也是一个结果。对于你的问题,未来的读者应该在知道发生了什么事情的时候有天赋。错误讯息?警告?无关的荣誉是为了报废你之前做的事情,并重新开始这个绝对最小的代码。 – WhozCraig

+1

无法将4x3矩阵与4x1相乘。内部尺寸可以匹配(例如,3x4与4x1) –

+0

是的,我记得,它是一个1x4,我只是有时混淆了行和列。 –

回答

4
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] 
     } 
     } 
    } 
} 
+0

啊好的!我现在明白了! –

+0

我不需要转置矩阵B为了它是一个3X4? 然后乘以转置Y矩阵,所以它可以是3X4和4X1? –