我試圖實現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,我只是有時混淆了行和列。 –