Re: [問題] 做個選擇的小目錄已回收

看板MATLAB作者 (失ゎれた彩畫)時間16年前 (2009/05/12 15:57), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《wearedone (done)》之銘言: : 我有七十四個隨機變數 : 它們服從的分配從這裡挑選出來:Chi-square(3),Beta(8,3),t(7),U(0,1) : 所以說這七十四個隨機變數所服從的分配是有重複的 : 取亂數向量時,我不想一個一個如以下這樣key全名: : X1=betarnd(8,3,100,1); : X2=chi2rnd(3,100,1); : X3=unifrnd(0,1,100,1); : X4=trnd(7,100,1); : X5=chi2rnd(3,100,1); : X6=trnd(7,100,1); : X7=chi2rnd(3,100,1); : X8=betarnd(8,3,100,1); : X9=unifrnd(0,1,100,1); : ……………………… : X74=betarnd(8,3,100,1); 先提cell array cell array的宣告方式如下 Bank=[{5},{6},{7},{8}]; 此時Bank{1}=5 Bank{2}=6 .... 注意是用{}而不是() 再看看原po提的問題 首先看到X1~X74大概就知道eval是要用的 再來=的右邊只有4種情形所以可以用一個cell array來裝 Bank=[{betarnd(8,3,100,1)},{chi2rnd(3,100,1)}, ... {unifrnd(0,1,100,1)},{trnd(7,100,1)}]; 因此這時候Bank{1}就是betarnd(8,3,100,1) 再來用eval for i=1:74; eval(['X' num2str(i) '=' 'Bank{' num2str(round(1+rand*3)) '};']) end 如果你Bank裡面提到的4個函數都寫好的話..現在應該有值出來了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.44.9.131 ※ 編輯: panzertp 來自: 114.44.9.131 (05/12 17:52)
文章代碼(AID): #1A2Ilskj (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1A2Ilskj (MATLAB)