2012-09-23 28 views
0

我有兩個3x3浮點數組。我將它們存儲爲兩個一維數組,並寫下以下代碼來將它們相乘(這裏,s3是輸出矩陣): - MULTIP1: li $ t8,4 #$ s7具有數組s2的地址,$ s4具有地址陣列ARR
LA $ T9,S3 李$ t1,0 李$ t2,1 李$ t3,0 李$ 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 

此代碼只給出預期的第一行輸出矩陣正確...其餘的是搞砸....請幫助!

回答

0
  • 這不僅僅是兩個3x3矩陣的點積嗎?
  • 的3×3 2矩陣導致的3×3矩陣點積
  • 假定3×3 2個矩陣:A和B.
  • 矩陣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

+0

這是正確的......而且代碼給出了c11,c12和c13的正確答案,但不是其餘的...... –