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

看板MATLAB作者 (做人別太跩)時間15年前 (2010/06/17 10:33), 編輯推噓2(202)
留言4則, 4人參與, 最新討論串1/8 (看更多)
我先舉例說明移動的方式,我不懂程式,因為論文需要,想請高手幫個忙 基本上我想要的是不限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, , 1F
細節不清楚頂多不回答就好了,為什麼會是與你討論 = =
06/17 10:38, 1F

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

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

06/18 10:12, , 4F
我認真想要看懂 ... 但是真的不清楚 另推一樓XD
06/18 10:12, 4F
liu23829:轉錄至看板 C_and_CPP 06/20 12:49
文章代碼(AID): #1C6ObZ_j (MATLAB)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 1 之 8 篇):
文章代碼(AID): #1C6ObZ_j (MATLAB)