1

谁能帮助我从函数(fun.m)内部访问数组的多个元素(此处为 xGrid 和 yGrid)。性能是我的关键点。这是函数(被调用):

function count = fun(x0,y0,maxIter)
z0 = complex(x0,y0);
z = z0;
count = 1;
while count <= maxIter && (real(z)*real(z) + imag(z)*imag(z)) <= 4
    count = count + 1;
    z = z*z + z0;
end
count = log(count);

主要:

x = parallel.gpu.GPUArray.linspace( xlim(1), xlim(2), gridSize );
y = parallel.gpu.GPUArray.linspace( ylim(1), ylim(2), gridSize );
[xGrid,yGrid] = meshgrid( x, y );
count = arrayfun(@fun,xGrid, yGrid, maxIter);

我知道我只能访问 x0 和 y0(在 fun/arrayfun 中,当 i=1,j=1 时),但我也可以在同一个位置访问 x1、x2... 和 y1、y2..(i= 1 和 j=1) 并且没有在参数中传递它们?

4

1 回答 1

1

(抱歉之前的答案,我误读了这个问题)

如果你想从 fun 内部访问 xGrid 和 yGrid 的其他元素,为什么不将 xGrid 和 yGrid 传递给函数呢?Matlab 使用copy-on-write,因此除非您写入它们,否则将它们传入不应影响代码的效率。

于 2012-04-13T19:25:53.840 回答