[討論] 想請教 特地忽略某個值的排序問題

看板MATLAB作者 (PTT重度使用者)時間9年前 (2016/03/26 21:35), 9年前編輯推噓3(305)
留言8則, 3人參與, 最新討論串1/1
大家好 第一次在本板發文 我的問題是 我想依各列排序一個矩陣 矩陣大小不定 但我想忽略0這個數 比方說 我有 矩陣A 3,6,1,0,0,0 2,9,4,1,0,0 那我知道用 sort(A,2) 可以排完這個矩陣 但他會變成 0,0,0,1,3,6 0,0,1,2,4,9 因為一些程式邏輯的原因,我是想要使他變成 1,3,6,0,0,0 1,2,4,9,0,0 0對我來說是比較無意義的數字,想要把它丟到最後面去 不知道有沒有函示用法可以解決 感謝撥空解答~ -- t a ◥███◣╮ ╭══╮ ╭═══███ theanswer3 t a h n ◤ █╰══╯ ╰═╯ █ ◢█◣ \ h n e s █▌◢█ ◢ ◢ ◢ ◢█◣ █ ◥◣◥ ██◣ ╲ ̄e s w ███◤ █◢█ █ █▌█ █ ◣◥◣ ▆ █ w e █▌ ◥◤◥ █ ◥█◤ █ ◥█◤ ██◤ < \ ║ e r 3╰════════◆◤═══◆◤══════════════╯ r 3 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.168.8.130 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1458999308.A.75A.html ※ 編輯: keroro01 (118.168.8.130), 03/26/2016 21:35:21 ※ 編輯: keroro01 (118.168.8.130), 03/26/2016 21:37:15

03/26 23:32, , 1F
排序前把0拿掉或是設成很大的數字?
03/26 23:32, 1F
感謝回應 因為每一列有值的數目不定,所以0拿掉可能矩陣會崩潰 設成很大的數字應該可以,不過我有點排斥這個做法 但沒方法可行情況下還是會用吧XD ※ 編輯: keroro01 (118.168.8.130), 03/27/2016 10:38:57

03/27 13:56, , 2F
for i=1:size(A,1), [~,A(i,A(i,:)~=0)]=sort(A(i,A
03/27 13:56, 2F

03/27 13:56, , 3F
(i,:)~=0))
03/27 13:56, 3F

03/27 13:56, , 4F
end
03/27 13:56, 4F

03/27 15:59, , 5F
推樓上,不過中間應該是 A(ii,A(ii,:)~=0)=sort(A(ii,
03/27 15:59, 5F

03/27 16:00, , 6F
A(ii,:)~=0)); 我是用 for ii=1:size(A,1);沒差
03/27 16:00, 6F

03/27 16:06, , 7F
哈哈哈哈,打太快,謝謝提醒
03/27 16:06, 7F

03/27 16:07, , 8F
不知道為啥在想index Orz
03/27 16:07, 8F
喔喔喔 大感謝!! 原來真的有這種可以忽略某個值的排法說 感恩~~~ ※ 編輯: keroro01 (118.168.8.130), 03/27/2016 18:00:49
文章代碼(AID): #1Mzf0CTQ (MATLAB)
文章代碼(AID): #1Mzf0CTQ (MATLAB)