2012-08-28 3 views
3

parfor 루프 내에 매트릭스를 저장하려고합니다. matlab은 이것을 허용하지 않고 별도의 프로그램을 만들어야한다는 것을 알고 있습니다. 다음과 같이 parfor 별도의 함수를 만드는 것을 제안 인터넷 검색의 비트, 말 :matlab parfor 루프에서 명령어 저장

function parsave(fname, x,y) 

    save(fname, 'x', 'y') 

    end 

I가 발생하고있어 문제는 프로그램이 반복의 모든 (를 통과하기 전에 오류없이 중단 될 것이다 즉, 그것을 파일의 약 절반을 절약하고 있습니다). 나는 많은 작은 파일들을 가지고있다 (약 1M). 이것이 문제가 될 수 있습니까? 사전

답변

4

에서

덕분에 parfor 투명성 요구 사항을 위반 직접 내에서 저장 호출. 대신 저장을 호출 할 수있는 다른 함수에 변수를 전달해야합니다.

예 : Matlab provides은 다음과 같습니다.

function parsave(fname, x,y) 
    save(fname, 'x', 'y') 
    end 

그런 다음 그것을 실행하십시오 "parsave.m"으로 다음 저장

parfor ii = 1:4 
    x = rand(10,10); 
    y = ones(1,3); 
    parsave(sprintf('output%d.mat', ii), x, y); 
    end 
+0

이 게시물을 downvoted 이유 그것은 내게 분명하지 않다? 나는이 답변에서 http://stackoverflow.com/help/privileges/vote-down에 따라 하향 투표를 할만한 것을 보지 못했습니다. cc @Stuck_pls_help – user1375

관련 문제