查看: 359|回复: 1|关注: 0

[未答复] 请教各位大侠,matlab GPU编程时,如何在arrayfun函数中进行...

[复制链接]

新手

10 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
发表于 2018-12-14 20:33:26 | 显示全部楼层 |阅读模式
示例如下。我需要把arrayfun函数中每次计算的z的值保存到Pos矩阵中,并在循环结束后对矩阵进行操作。请各位大侠赐教!

function test_GPU_computing

maxIterations=500;
gridSize=1500;
xlim=[-0.75, -0.73];
ylim=[ 0.12,  0.14];

t=tic();
x=gpuArray.linspace( xlim(1), xlim(2), gridSize );
y = gpuArray.linspace( ylim(1), ylim(2), gridSize );
[xGrid,yGrid] = meshgrid( x, y );

count=arrayfun( @tar_fun,xGrid, yGrid, maxIterations );
count=gather(count); % Fetch the data back from the GPU
gpuArrayfunTime=toc(t)
figure(1)
imagesc(x,y,count)
reset(gpuDevice(1))

function count=tar_fun(x0,y0,maxIterations)
z0=complex(x0,y0);
z=z0;
count=1;
%Pos=[];
while (count <= maxIterations) && (abs(z) <= 2)
    count=count+1;
    z=z*z+z0;
    %Pos(count,1)=z;
end
count=log(count);

新手

10 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
 楼主| 发表于 2018-12-15 16:03:45 | 显示全部楼层
敬请赐教
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

快速回复 返回顶部 返回列表