Re: [討論] parfor能否每計算一個idx就輸出一次存檔?

看板MATLAB作者 (阿泰斯)時間12年前 (2013/04/28 14:00), 編輯推噓1(105)
留言6則, 2人參與, 最新討論串3/3 (看更多)
※ 引述《jmren (jm)》之銘言: : 這是使用parfor常見問題! : 解法:另外寫myWrite function,並存成新檔 : function myWrite(path,data) : csvwrite(path,data); : 在parfor中,直接呼叫myWrite,而不是csvwrite : parfor ii=1:10 : ... : myWrite('資料夾+檔名',data); : end 好像不行!? 剛測試了一下 這是我的測試程式檔: function tempdata=test(yymin,yymax,yyd) xx=sym('xx'); nextformax=fix(((yymax-yymin)/yyd)+1); parfor ii=1:nextformax yy=yymin+yyd*(ii-1); mymatrix=[xx+2*yy,3*xx,6*yy;xx,yy,2*xx+3*yy;yy,7*xx,3*yy]; eq=det(mymatrix); myans(:,ii)=double(solve(eq,'xx')) %假設解的個數相同 end tempdata=myans; end 這是我的function mycsvwrite function mycsvwrite(file,data) csvwrite(file,data); end 以下做測試: 1.加入mycsvwrite: function tempdata=test(yymin,yymax,yyd) xx=sym('xx'); nextformax=fix(((yymax-yymin)/yyd)+1); parfor ii=1:nextformax yy=yymin+yyd*(ii-1); mymatrix=[xx+2*yy,3*xx,6*yy;xx,yy,2*xx+3*yy;yy,7*xx,3*yy]; eq=det(mymatrix); myans(:,ii)=double(solve(eq,'xx')) %假設解的個數相同 mycsvwrite('D:\testwrite',myans(:,ii)) % 這裡的myans不加(:,ii)的話, 馬上parfor下面會出現紅線 end tempdata=myans; end 這樣寫的話匯出的csv檔只有一行...(只匯出一組解...) 2.加入data=[]; function tempdata=test(yymin,yymax,yyd) xx=sym('xx'); data=[]; nextformax=fix(((yymax-yymin)/yyd)+1); parfor ii=1:nextformax yy=yymin+yyd*(ii-1); mymatrix=[xx+2*yy,3*xx,6*yy;xx,yy,2*xx+3*yy;yy,7*xx,3*yy]; eq=det(mymatrix); myans(:,ii)=double(solve(eq,'xx')) %假設解的個數相同 data=[data,myans(:,ii)]; % 這裡的myans不加(:,ii)的話,馬上parfor下面會出 現紅線 mycsvwrite('D:\ab\testwrite',data); %多這行parfor下面出現紅線 end tempdata=myans; end 紅線詳細: The PARFOR loop cannot run due to the way variable 'myans' is used. (或data) 怎會這樣!? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.130.17.157

04/29 07:27, , 1F
以cell array方式儲存/傳遞myans(:,ii);
04/29 07:27, 1F

04/29 15:00, , 2F
一樣……,現在問題是myans在parfor裡面
04/29 15:00, 2F

04/29 15:00, , 3F
出現2次parfor下面就出現紅線
04/29 15:00, 3F

04/29 15:01, , 4F
好像跟解儲存成什麼形式無關
04/29 15:01, 4F

04/29 16:09, , 5F
我找到isavex那個範例了,我好好研究一下,感謝您熱心
04/29 16:09, 5F

04/29 16:09, , 6F
協助!!
04/29 16:09, 6F
文章代碼(AID): #1HVBhh5G (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1HVBhh5G (MATLAB)