看板 MATLAB 關於我們 聯絡資訊
大家好 第一次在本板發文 我的問題是 我想依各列排序一個矩陣 矩陣大小不定 但我想忽略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
sin55688: 排序前把0拿掉或是設成很大的數字? 03/26 23:32
感謝回應 因為每一列有值的數目不定,所以0拿掉可能矩陣會崩潰 設成很大的數字應該可以,不過我有點排斥這個做法 但沒方法可行情況下還是會用吧XD ※ 編輯: keroro01 (118.168.8.130), 03/27/2016 10:38:57
celestialgod: for i=1:size(A,1), [~,A(i,A(i,:)~=0)]=sort(A(i,A 03/27 13:56
celestialgod: (i,:)~=0)) 03/27 13:56
celestialgod: end 03/27 13:56
fghjkl1000: 推樓上,不過中間應該是 A(ii,A(ii,:)~=0)=sort(A(ii, 03/27 15:59
fghjkl1000: A(ii,:)~=0)); 我是用 for ii=1:size(A,1);沒差 03/27 16:00
celestialgod: 哈哈哈哈,打太快,謝謝提醒 03/27 16:06
celestialgod: 不知道為啥在想index Orz 03/27 16:07
喔喔喔 大感謝!! 原來真的有這種可以忽略某個值的排法說 感恩~~~ ※ 編輯: keroro01 (118.168.8.130), 03/27/2016 18:00:49