[問題]矩陣元素上移問題已刪文

看板MATLAB作者 (sq613)時間3年前 (2021/01/14 21:29), 3年前編輯推噓4(407)
留言11則, 3人參與, 3年前最新討論串1/1
我有一個矩陣 2 0 0 0 3 1 0 0 [ 0 0 1 0 ] 0 0 5 1 想要把每行非零元素上移到最上面 變成 2 1 1 1 3 0 5 0 [ 0 0 0 0] 0 0 0 0 原本我是用circshift累計每行碰到非零元素之前0的數量然後上移 但寫法好像有錯一直顯示 Index in position 1 exceeds array bounds(must not exceed 3) 想請問該怎麼改? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.237.129.201 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1610630944.A.1E6.html

01/15 00:57, 3年前 , 1F
sortrows(A')'
01/15 00:57, 1F

01/15 01:25, 3年前 , 2F
上一行錯了,應該是 sort(A,'descend')
01/15 01:25, 2F

01/15 02:32, 3年前 , 3F
謝謝你
01/15 02:32, 3F

01/15 23:51, 3年前 , 4F
突然想到舉的例子不太好,因為我實際要操作的矩陣元素
01/15 23:51, 4F

01/15 23:51, 3年前 , 5F
不會都是1,想請問如果矩陣內非零元素改成隨機數字該
01/15 23:51, 5F

01/15 23:51, 3年前 , 6F
怎麼寫?
01/15 23:51, 6F
※ 編輯: sq61372py (1.200.235.216 臺灣), 01/15/2021 23:52:44 ※ 編輯: sq61372py (1.200.235.216 臺灣), 01/15/2021 23:57:37

01/16 21:09, 3年前 , 7F
自己寫個 小程式啊 把非零取出來
01/16 21:09, 7F

01/16 21:10, 3年前 , 8F
再補 等於0 [a; b]
01/16 21:10, 8F

01/16 23:07, 3年前 , 9F
所以非零元素在column中會聚在一起嗎?所以你才用circshift
01/16 23:07, 9F

01/16 23:08, 3年前 , 10F
而且你要求位移後保持非零的相對位置?不然sort也是可以用
01/16 23:08, 10F

01/17 00:08, 3年前 , 11F
是的,我希望相對位置能保持不變
01/17 00:08, 11F
文章代碼(AID): #1W04SW7c (MATLAB)
文章代碼(AID): #1W04SW7c (MATLAB)