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

看板MATLAB作者 (小太保)時間16年前 (2009/05/18 12:23), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《trulliwu (trulliwu)》之銘言: : 標題: [問題] 請問matlab字串抽取的問題 : 時間: Sun May 17 16:42:56 2009 : : 想請問有關字串抽取的問題 : : 例如:有一字串如{A B C D E F G.....}的型式,想請問如何隨機抽取 : : 兩個值到最前面而其它則依序排列,如隨機抽取C,F兩數之後形成 : : 為{C F A B D E G}的新型式像是如此一直變化下去,並且可以設定 : : 為自己所需要的條數,謝謝。 : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 140.130.23.21 : → trulliwu:如我己經先得到了[10,8,6,12,26,4,1]的字元排序 05/17 22:12 : → trulliwu:而希望以隨機的方式任抽取兩個數字排到最前面,其它的數 05/17 22:14 : → trulliwu:而其的數字則往後排列,如NullLife大大的程式是鎖定C及F 05/17 22:20 : → trulliwu:方式,不知道可不可以用隨機的方式抽取任兩個數字而非固 05/17 22:22 : → trulliwu:定的方法,不好意思沒有說清楚。 05/17 22:26 : → panzertp:這問題應該變成隨機選兩個數字 /隨機 05/17 22:30 : 推 NullLife:把'C'或'F'換成變數就好啦, 如果要抽取的個數未知... 05/17 22:30 : → NullLife:我想可能要用for包住了吧... 05/17 22:32 : → trulliwu:感謝NullLife大大的拔刀相助,也謝謝panzertp大大的指教 05/18 10:46 : → trulliwu:我會再試者try try看,謝謝。 05/18 10:48 依 NullLife 提供的語法 x = [10 8 6 12 26 4 1]; xx = randperm(length(x)); a = x(xx(1:2)); % 隨機選 x 裡頭的任兩個 x(xx(1:2)) = []; % 把這兩個從 x 裡面幹掉 x = [a x]; x = 26 4 10 8 6 12 1 ^^^^^^^^這兩個隨機取出 當題目改成前 n 個隨機時,上面的 2 改成 n 即可。 上面的寫法舊程式思維寫法佔90%,更適合的寫法還是要以matlab 數學思維寫法去寫較佳^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 編輯: laechan 來自: 218.170.229.181 (05/18 12:25)

05/18 14:39, , 1F
[x(xx(1:2)) x(sort(xx(3:end)))] 這樣寫會不會比較簡潔?
05/18 14:39, 1F

05/18 19:48, , 2F
我沒那樣寫是因為原po好像沒說後面要sort
05/18 19:48, 2F

05/18 21:19, , 3F
天啊!真情滿天下,諸位擁有佛心的佛爺,謝謝你們。
05/18 21:19, 3F
文章代碼(AID): #1A4EBMFd (MATLAB)
文章代碼(AID): #1A4EBMFd (MATLAB)