2016-09-12 260 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? –