ทำการเรียกใช้งาน package Munkres
using Munkres
ทดสอบการจัดเรียง Matrix ให้อยู่ในรูป Diagonally Dominant Matrix (DDM) เนื่องจาก munkres ทำการหา Matrix ที่ค่าผลรวมใน diagonal มีค่าน้อยสุด เราจึงต้องใส่ค่า -A เข้าไปในฟังกชัน munkres
A = [3 7 13; 12 3 -5; 1 5 3;]
row = munkres(-A)
ผลลัพธ์จาก munkres จะอยู่ในรูปของเวคเตอร์ที่บอกว่าแต่ละแถวใน Matrix A จะต้องย้ายไปอยู่แถวไหน หากต้องการทำให้ A เป็น DDM อย่างเช่นตามตัวอย่าง เราพบว่า แถวแรกของ A ต้องย้ายไปอยู่ แถวที่ 3 ในเมทริกซ์ใหม่ (สมมติให้ชื่อว่า B) แถวที่สองของ A ต้องย้ายไปอยู่แถวที่ 1 ของ B และแถวที่สามของ A ต้องไปอยู่ แถวที่ 2 สอง B
B = zeros(size(A))
for i=1:length(row)
B[row[i],:] = A[i,:]
end
B
โค้ดส่วนสุดท้าย ทำการ copy แถวแต่ละแถวของ A ให้ไปอยู่ใน matrix B ตามตำแหน่งที่ควรจะเป็น โดยเราทำการ loop เพื่อจับแต่ละแถวของ A ไปวาง ในตำแหน่งที่ถูกต้องใน B