[問題]用於GPU運算之arrayfun和global用法
主程式:
global DS1 DS2...
[AA,BB]=meshgrid(nu1_all,nu2_all);
C=arrayfun(@fun,AA,BB,'UniformOutput',true);
nu1_all和nu2_all是長度1001的array
C是1001*1001組成的2D平面
global都是2維的值
副函式:
function C=fun(nu1,nu2)
global DS1 DS2...
...
end
以上沒有使用gpu計算是可行的
將全部參數都用gpuArray轉到gpu上去算的時候global卻不能讓fun讀到,有錯誤
fun輸出的C要用到global的值才能算出,同時主程式也要用到global
如果不用global,副函式要一一輸入global的值嗎?
global的值在使用arrayfun時不改變
請問有甚麼解決辦法?
使用for跑的模擬都跑好久
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.105.132.12
※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1453185945.A.366.html
→
01/19 14:53, , 1F
01/19 14:53, 1F
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章