[討論] 這段要怎改成parfor並行運算?

看板MATLAB作者 (阿泰斯)時間13年前 (2013/04/24 11:45), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串1/1
例如: function connect=Qdata(v1,v2,v3) syms a data=[]; steps=((v2-v1)/v3)+1; hwait=waitbar(0,'wait'); for vv=v1:v3:v2 str=['計算vv中,共',num2str((((v2-v1)/v3)+1)),'個vv,','第 ',num2str((((vv-v1)/v3)+1)),'個vv']; waitbar((((vv-v1)/v3)+1)/steps,hwait,str); mm=[a,vv,3+a;a+vv,2+a,1+a;a,2*a,a+2*vv]; eq=det(mm); eqans=solve(eq,'a'); data=[data,eqans]; end close(hwait); connect=data; end 上面那段要怎改寫成parfor並行運算? 求高手幫助! 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.130.17.157

04/24 20:52, , 1F
data不能這樣存,因為他開始執行的位置不是從第一個開始
04/24 20:52, 1F

04/24 22:56, , 2F
感謝!但不太懂,能否說明白一點?
04/24 22:56, 2F

04/25 01:08, , 3F
直接在parfor印出idx你就會知道他不是照idx順序跑的,而你
04/25 01:08, 3F

04/25 01:09, , 4F
data的存法是有序列關聯性的所以不能這樣存
04/25 01:09, 4F
文章代碼(AID): #1HTrL9WM (MATLAB)
文章代碼(AID): #1HTrL9WM (MATLAB)