[問題] 請問matlab字串抽取的問題已回收

看板MATLAB作者 (trulliwu)時間16年前 (2009/05/17 16:42), 編輯推噓3(3016)
留言19則, 3人參與, 最新討論串1/2 (看更多)
想請問有關字串抽取的問題 例如:有一字串如{A B C D E F G.....}的型式,想請問如何隨機抽取 兩個值到最前面而其它則依序排列,如隨機抽取C,F兩數之後形成 為{C F A B D E G}的新型式像是如此一直變化下去,並且可以設定 為自己所需要的條數,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.130.23.21

05/17 18:37, , 1F
x=char(65:75)
05/17 18:37, 1F

05/17 18:37, , 2F
y=x(x == 'C' | x == 'F');
05/17 18:37, 2F

05/17 18:37, , 3F
x(x == 'C' | x == 'F')=[];
05/17 18:37, 3F

05/17 18:38, , 4F
y=[y x]
05/17 18:38, 4F

05/17 18:38, , 5F
我想不到更快的方式了@@" 看看有沒有高手有另解
05/17 18:38, 5F

05/17 18:47, , 6F
我想到了...
05/17 18:47, 6F

05/17 18:47, , 7F
x=[x(x == 'C' | x == 'F') x(x ~= 'C' & x ~= 'F')]
05/17 18:47, 7F

05/17 22:03, , 8F
感謝大大的回覆,在自己試過之後程式是可行的,此時發現
05/17 22:03, 8F

05/17 22:08, , 9F
我例子的呈現的方式有問題,應該是字元的排序(數字)
05/17 22:08, 9F

05/17 22:12, , 10F
如我己經先得到了[10,8,6,12,26,4,1]的字元排序
05/17 22:12, 10F

05/17 22:14, , 11F
而希望以隨機的方式任抽取兩個數字排到最前面,其它的數
05/17 22:14, 11F

05/17 22:20, , 12F
而其的數字則往後排列,如NullLife大大的程式是鎖定C及F
05/17 22:20, 12F

05/17 22:22, , 13F
方式,不知道可不可以用隨機的方式抽取任兩個數字而非固
05/17 22:22, 13F

05/17 22:26, , 14F
定的方法,不好意思沒有說清楚。
05/17 22:26, 14F

05/17 22:30, , 15F
這問題應該變成隨機選兩個數字 /隨機
05/17 22:30, 15F

05/17 22:30, , 16F
把'C'或'F'換成變數就好啦, 如果要抽取的個數未知...
05/17 22:30, 16F

05/17 22:32, , 17F
我想可能要用for包住了吧...
05/17 22:32, 17F

05/18 10:46, , 18F
感謝NullLife大大的拔刀相助,也謝謝panzertp大大的指教
05/18 10:46, 18F

05/18 10:48, , 19F
我會再試者try try看,謝謝。
05/18 10:48, 19F
文章代碼(AID): #1A3yuHpC (MATLAB)
文章代碼(AID): #1A3yuHpC (MATLAB)