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

看板C_and_CPP作者 (做人別太跩)時間15年前 (2010/06/20 12:49), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/6 (看更多)
※ [本文轉錄自 MATLAB 看板 #1C6ObZ_j ] 作者: liu23829 (做人別太跩) 看板: MATLAB 標題: [問題] 有關矩陣兩列或兩行互換的程式怎麼寫? 時間: Thu Jun 17 10:32:59 2010 我先舉例說明移動的方式,我不懂程式,因為論文需要,想請高手幫個忙 基本上我想要的是不限size的矩陣 例子如下:給一個5x6的矩陣 A=[1/2,0,0,0,0,0;0,2,0,0,3,2;0,0,2,0,1,0;0,1/3,0,0,0,0;1,0,0,2,0,0] 定義J=1,鎖定該矩陣的第一行,做“兩列”的互換,使非0元素能移到0元素的上面 定義Ib1=k(第一行裡非0元素個數),上述例子移動後(R2→R5),k=2,若k=5則停止 鎖定Ib1=2(非0元素所在的列,亦即1、2列),做“兩行”的互換 使非0元素能往左移,0元素往右移,上述例子移動後(C2→C4) 定義Jb1=m(移動後 非0元素所在的行個數),m=2,若m=6則停止 鎖定Jb1=2(非0元素所在的行,亦即1、2行),做“兩列”的互換 使非0元素能往上移,0元素往下移,上述例子發現不需做移動 再定義Ib2=k'(此時1、2行有一非0元素以上的列有2列),上述例子因Jb1=Ib2 形成T1的2x2區塊[1/2,0;1,2],此時該區塊的右方和下方皆為0元素, 遮閉T1所在行與列,再考慮右下方的區塊,設定T2 上述例子T2=[2,0,1,0;0,1/3,0,0;0,2,3,2],做相同的移動,需再C2→C3,R2→R3 移動的結果為[2,1,0,0;0,3,2,2;0,0,1/3,0], 發現無法形成某區塊右方和下方皆為0元素即停止 這個移動的程式,需以迴圈的模式來寫,用C或MATLAB都可,如果細節不清楚可再與我討論 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.240.3.24

06/17 10:38,
細節不清楚頂多不回答就好了,為什麼會是與你討論 = =
06/17 10:38

06/17 14:35,
codejob
06/17 14:35

06/17 17:45,
1F XD
06/17 17:45

06/18 10:12,
我認真想要看懂 ... 但是真的不清楚 另推一樓XD
06/18 10:12
-- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.167.147.155
文章代碼(AID): #1C7Pta6t (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1C7Pta6t (C_and_CPP)