作者keroro01 (PTT重度使用者)
看板MATLAB
标题[问题] 想请教 特地忽略某个值的排序问题
时间Sat Mar 26 21:35:04 2016
大家好 第一次在本板发文
我的问题是 我想依各列排序一个矩阵 矩阵大小不定
但我想忽略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://webptt.com/cn.aspx?n=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
1F:推 sin55688: 排序前把0拿掉或是设成很大的数字? 03/26 23:32
感谢回应 因为每一列有值的数目不定,所以0拿掉可能矩阵会崩溃
设成很大的数字应该可以,不过我有点排斥这个做法 但没方法可行情况下还是会用吧XD
※ 编辑: keroro01 (118.168.8.130), 03/27/2016 10:38:57
2F:→ celestialgod: for i=1:size(A,1), [~,A(i,A(i,:)~=0)]=sort(A(i,A 03/27 13:56
3F:→ celestialgod: (i,:)~=0)) 03/27 13:56
4F:→ celestialgod: end 03/27 13:56
5F:推 fghjkl1000: 推楼上,不过中间应该是 A(ii,A(ii,:)~=0)=sort(A(ii, 03/27 15:59
6F:→ fghjkl1000: A(ii,:)~=0)); 我是用 for ii=1:size(A,1);没差 03/27 16:00
7F:推 celestialgod: 哈哈哈哈,打太快,谢谢提醒 03/27 16:06
8F:→ celestialgod: 不知道为啥在想index Orz 03/27 16:07
喔喔喔 大感谢!!
原来真的有这种可以忽略某个值的排法说 感恩~~~
※ 编辑: keroro01 (118.168.8.130), 03/27/2016 18:00:49