Re: [問題] 請問如果不用randsrc 要怎麼寫自製的機 …已回收

看板MATLAB作者 (...)時間15年前 (2010/12/06 17:23), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
寫了一個副程式,應該沒有什麼問題, 給定x為可用的元素值,p為對應之機率, 輸出y之大小由m,n設定,副程式如下。 function y = rand_src(x,p,m,n) % x = [1 2 3]; % 可用元素值 % p = [0.2 0.6 0.2]; % 元素值之機率 % m = 2; % 輸出y之行數量 % n = 10; % 輸出y之列數量 % ================== 計算 CDF =================== p_cdf(1) = p(1); for i = 1:length(p)-1 p_cdf(i+1) = p_cdf(i) + p(i+1); end % =============================================== % =================== 檢查CDF =================== if p_cdf(end) ~= 1 fprintf('Total probability must be 1, please try again!\n'); return end % ================================================ tmp = rand(m,n); y = zeros(m,n); y(find(tmp < p_cdf(1))) = x(1); for i = 2:length(x) y(intersect(find(tmp > p_cdf(i-1)),find(tmp < p_cdf(i)))) = x(i); end ※ 引述《franchise (雨)》之銘言: : 想請問一下... : 如果不用randsrc(communication toolbox) : 要怎麼寫出自製的機率分佈函數 : 比如說: : x={1,2,3} : p(x=1)=0.1 : p(x=2)=0.3 : p(x=3)=0.6 : 感謝 !! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.138.178.176
文章代碼(AID): #1C_Aka4j (MATLAB)