0

2 つの 3x3 浮動小数点配列があります。私はそれらを 2 つの 1D 配列として保存し、それらを乗算する次のコードを書きました (ここで、s3 は出力行列です):- MULTIP1: li $t8,4 # $s7 は配列 s2 のアドレスを持ち、$s4 は配列 arr
laのアドレスを持ちます$t9,s3 li $t1,0 li $t2,1 li $t3,0 li $t4,1

LOOP1:
 beq $t4,$t8,MULTIP2    #multip2 is the next segment of program
 li $t2,1
ENTER1:
beq $t2,$t8,UP1
li $t0,1
LOOP2:
  beq $t0,$t8,UP2
ENTER2:
  lwc1 $f22,0($s7)
  lwc1 $f24,0($s4)
  mul.s $f8,$f22,$f24
  add.s $f10,$f10,$f8
  swc1 $f10,0($t9)

  addi $s7,$s7,4
  addi $s4,$s4,12
  addi $t0,$t0,1
  j LOOP2
UP2:
  l.s  $f10,zero
  addi $t9,$t9,4
  addi $t1,$t1,4     #update column of second matrix
  la $s7,s2
  add $s7,$s7,$t3
  la $s4,arr
  add $s4,$s4,$t1
  addi $t2,$t2,1
  j ENTER1
UP1:

  addi $t3,$t3,12
  la   $s7,s2
  add  $s7,$s7,$t3  #update row of first matrix
  la   $s4,arr
  addi $t4,$t4,1
  j LOOP1

このコードは、予想される出力行列の最初の行のみを正しく提供します...残りは台無しです....助けてください!!!

4

1 に答える 1

0
  • これは 2 つの 3x3 行列の単なる内積ではありませんか?
  • 2 つの 3x3 行列の内積は 3x3 行列になります
  • A と B の 2 つの 3x3 行列があるとします。
  • 行列 C は次のように C = AB の積です。

    A = [a11, a12, a13] [a21, a22, a23] [a31, a32, a33]

    B = [b11、b12、b13] [b21、b22、b23] [b31、b32、b33]

    C = [c11、c12、c13] [c21、c22、c23] [c31、c32、c33]

    c11 = a11*b11+a12*b21+a13*b31 c12 = a11*b12+a12*b22+a13*b23 c13 = a11*b13+a12*b23+a13*b32 c21 = a21*b11+a22*b21+a23 *b31 c22 = a21*b12+a22*b22+a23*b32 c23 = a21*b13+a22*b23+a23*b33 c31 = a31*b11+a32*b21+a33*b31 c32 = a31*b12+b32*b22 +a33*b32 c33 = a31*b13+a32*b23+a33*b33

于 2012-09-23T19:40:00.733 に答える