Pararrayfun이 방법흡장 옥타브 /시 MATLAB pararrayfun 의해 병렬 함수 내에서 작동 액세스 행렬
pkg load parallel;
# fun is the function to apply
fun = @(x) x^2;
vector_x = 1:10000;
vector_y = pararrayfun(16, fun, vector_x);
I이 양식
fun = @(i) zz(1:100,i+1) = z.^2;
Z와 기능에 적용하고자 사용되고 는 열 벡터이며, zz는 100xi 행렬입니다. pararrayfun() 후에 zz 행렬을 얻고 싶지만 아무것도 얻지 못합니다. 한 달 전에 옥타브를 사용하기 시작 했으므로 올바른 코드 또는 적절한 인수를 사용하고 있는지 잘 모릅니다. 어떤 도움이라도 정말로 감사 할 것입니다.
pkg load parallel;
z = linspace(-1,10,100).';
fun = @(i) zz(1:100,i+1) = z.^2;
i = 0:9999;
pararrayfun(16, fun, i);
내가 글로벌 ZZ를 사용하려고하지만 난 아직 아무것도 얻을 :
여기 내 시도 "전체"코드입니다.
좋은 답변이지만 OP가 (XY 문제로 인해) 도움이되지 않습니다. Btw, 병렬 패키지는 GNU/Linux에서'fork'를 사용합니다 (그리고 windoze에서는 그리 쓸모가 없습니다). 그래서 부모 프로세스가 접근 할 수 있도록 값을 전역 변수에 "저장할"수 없습니다. – Andy
이것은 정확히 제가 본 것입니다 에 대한! –
@Andy 정확히, 이것은 "각 스레드마다 고유 한 컨텍스트가 있음"을 의미합니다. 그래서 저는 "pararrayfun"으로 "불가능"하다고 생각했습니다. – ederag