Re: [問題] 有關矩陣兩列或兩行互換的程式怎麼寫?已回收

看板MATLAB作者 (做人別太跩)時間15年前 (2010/06/19 09:10), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串6/8 (看更多)
※ 引述《CCWck (幹嘛要暱稱)》之銘言: : ※ 引述《liu23829 (做人別太跩)》之銘言: : : 上述A矩陣的第一行為[1/2,0,0,0,1], 鎖定第一行非0元素往上移,要做列的移動, : : 故移動方式為(R5→R2)第5列與第2列互換,這邊定義Ib1=2 : : 再針對第一行的移動後非0元素[1/2,1]所在的列,做行的移動,使非0元素往左移 : : 0元素往右移,移動前此兩列為[1/2,0,0,0,0,0;1,0,0,2,0,0]移動方式為判別 : : 此兩列中,皆有0元素的行往右移,故應該移動C2→C4 : : 移動後兩列為[1/2,0,0,0,0,0;1,2,0,0,0,0] : : 再定義移動後,此兩列有一非0元素以上的行有2行(Jb1=2)針對此2行(亦即1、2行) : : 做列的移動,將非0元素往上移,0元素往下移,發現不用做移動 : : 移動後,此時再定義Ib2=2(此時1、2行裡有一非0元素以上的列還是1、2列) : : 故得到Ib2=Jb1,皆為2,而形成2x2的區塊,設定T1,整個移動方式其實是 : : 將非0元素往左上方移動,移動的步驟為鎖定行,做列的移動,找到非0元素後 : : 針對非0元素所在的列,再做行的移動,之後再鎖定非0元素所在的行,做列的移動 : : 以此類堆,如果形成某區塊右方和下方皆為0元素即停止,遮閉該區塊所在的行、列 : : 考慮剩下的區塊部分來做移動,當然移動後無法形成某區塊右方和下方 : : 皆為0元素,一樣停止,這是補充說明,有點複雜。 : 初始 : A = : 0.5000 0 0 0 0 0 : 0 2.0000 0 0 3.0000 2.0000 : 0 0 2.0000 0 1.0000 0 : 0 0.3333 0 0 0 0 : 1.0000 0 0 2.0000 0 0 : 二五列交換 : A = : 0.5000 0 0 0 0 0 : 1.0000 0 0 2.0000 0 0 : 0 0 2.0000 0 1.0000 0 : 0 0.3333 0 0 0 0 : 0 2.0000 0 0 3.0000 2.0000 : 二四行交換 : A = : 0.5000 0 0 0 0 0 : 1.0000 2.0000 0 0 0 0 : 0 0 2.0000 0 1.0000 0 : 0 0 0 0.3333 0 0 : 0 0 0 2.0000 3.0000 2.0000 : 然後我還是不知道原PO想要做什麼.... 再說明一下,這時左上方的區塊T1形成了[0.5,0;1,2]該區塊右方跟下方皆為0元素了 故停止這個區塊的移動,考慮右下方這個區塊,設定T2 T2= 2.0000 0 1.0000 0 : 0 0.3333 0 0 : 0 2.0000 3.0000 2.0000 T2尚未移動,要先照上述的方式移動後,才能判別停止 鎖定該區塊的第一行為[2,0,0]故非0元素只有2那一個,Ib1=1,針對2那個元素所在的列 做行的互換,非0往左移,0往右移,故需移動C2→C3 T2= 2.0000 1.0000 0 0 : 0 0 0.3333 0 : 0 3.0000 2.0000 2.0000 移動後,這時Jb1=2(非0元素所在的行個數,亦即1、2行)也就是[2,1]這2行 針對這二行做列的移動,非0往上移,0往下移,需再移動R2→R3 移動後T2= 2.0000 1.0000 0 0 : 0 3.0000 2.0000 2.0000 0 0 0.3333 0 此時,Ib2(前面鎖定1、2行中,含一非0元素以上所在的列,有2列),因為第二次的列移動 故設定Ib2=2,再針對非0元素所在的列,亦即1、2列,做行的移動 發現2列中,皆為0元素能移動的行,並沒有,故此時定義了Jb2,因為第二次的行移動 Jb2=4(前面鎖定1、2列中,含一非0元素以上所在的行,有4行) 再針對這4行做列的移動,非0往上移,0往下移, 此時也不需做移動,因為只剩0,0,1/3,0這一列 而且此區塊移動整理後,並無法形在某區塊右下和下方皆為0元素,故停止 重點還是我強調的,非0元素的移動,針對鎖定的行,做列的移動,再針對 移動後非0元素所在列做行的移動,以此類推,而判別停止的條件有2 1.形成某區塊右下和下方皆為0元素,則停止,遮閉該區塊所在的行與列,考慮剩下的區塊 2.移動後無法形成右方和下方皆為0元素,也要停止 演算式我想不出來,能幫忙的感激不盡~~~~ -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.167.129.204
文章代碼(AID): #1C71aXLI (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1C71aXLI (MATLAB)