2016-09-12 2 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

그럼 해 보았습니다. 그것은 일하지 말았어야했거나 여기에 없었을 것입니다. 그러나 doesn't-work는 많은 결과와 같은 증상입니다. 귀하의 질문에 대한 미래의 독자는 당신이 이것을 시도했을 때 실제로 일어난 일을 아는 것과 재능이 있어야합니다. 오류 메시지? 경고? 당신이 이전에했던 일을 폐기하고이 절대적으로 최소한의 코드로 다시 시작하는 것과 관련없는, 명성. – 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이 될 수 있습니다. –