Discuz! Board

标题: [代码|Code]矩阵相乘|Matrix multiplication [打印本页]

作者: Jerry小坏    时间: 2017-7-14 16:35
标题: [代码|Code]矩阵相乘|Matrix multiplication

by Akatsuki

  1. void MatrixConcat(const float in1[4][4], const float in2[4][4], float out[4][4])
  2. {
  3.     out[0][0] = in1[0][0]*in2[0][0] + in1[0][1]*in2[1][0] + in1[0][2]*in2[2][0] + in1[0][3]*in2[3][0];
  4.     out[0][1] = in1[0][0]*in2[0][1] + in1[0][1]*in2[1][1] + in1[0][2]*in2[2][1] + in1[0][3]*in2[3][1];
  5.     out[0][2] = in1[0][0]*in2[0][2] + in1[0][1]*in2[1][2] + in1[0][2]*in2[2][2] + in1[0][3]*in2[3][2];
  6.     out[0][3] = in1[0][0]*in2[0][3] + in1[0][1]*in2[1][3] + in1[0][2]*in2[2][3] + in1[0][3]*in2[3][3];

  7.     out[1][0] = in1[1][0]*in2[0][0] + in1[1][1]*in2[1][0] + in1[1][2]*in2[2][0] + in1[1][3]*in2[3][0];
  8.     out[1][1] = in1[1][0]*in2[0][1] + in1[1][1]*in2[1][1] + in1[1][2]*in2[2][1] + in1[1][3]*in2[3][1];
  9.     out[1][2] = in1[1][0]*in2[0][2] + in1[1][1]*in2[1][2] + in1[1][2]*in2[2][2] + in1[1][3]*in2[3][2];
  10.     out[1][3] = in1[1][0]*in2[0][3] + in1[1][1]*in2[1][3] + in1[1][2]*in2[2][3] + in1[1][3]*in2[3][3];

  11.     out[2][0] = in1[2][0]*in2[0][0] + in1[2][1]*in2[1][0] + in1[2][2]*in2[2][0] + in1[2][3]*in2[3][0];
  12.     out[2][1] = in1[2][0]*in2[0][1] + in1[2][1]*in2[1][1] + in1[2][2]*in2[2][1] + in1[2][3]*in2[3][1];
  13.     out[2][2] = in1[2][0]*in2[0][2] + in1[2][1]*in2[1][2] + in1[2][2]*in2[2][2] + in1[2][3]*in2[3][2];
  14.     out[2][3] = in1[2][0]*in2[0][3] + in1[2][1]*in2[1][3] + in1[2][2]*in2[2][3] + in1[2][3]*in2[3][3];

  15.     out[3][0] = in1[3][0]*in2[0][0] + in1[3][1]*in2[1][0] + in1[3][2]*in2[2][0] + in1[3][3]*in2[3][0];
  16.     out[3][1] = in1[3][0]*in2[0][1] + in1[3][1]*in2[1][1] + in1[3][2]*in2[2][1] + in1[3][3]*in2[3][1];
  17.     out[3][2] = in1[3][0]*in2[0][2] + in1[3][1]*in2[1][2] + in1[3][2]*in2[2][2] + in1[3][3]*in2[3][2];
  18.     out[3][3] = in1[3][0]*in2[0][3] + in1[3][1]*in2[1][2] + in1[3][2]*in2[2][3] + in1[3][3]*in2[3][3];
  19. }
复制代码





欢迎光临 Discuz! Board (https://esfbbs.foxnyx.top/) Powered by Discuz! X3.2