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 (i=1、j=1 の場合、fun/arrayfun 内) にしかアクセスできないことはわかっていますが、同じ位置 (i= 1 および j=1) で、それらをパラメーターに渡さずに?

4

1 に答える 1

1

(以前の回答で申し訳ありません、私は質問を読み違えました)

fun 内から xGrid と yGrid の他の要素にアクセスしたい場合は、xGrid、yGrid を関数に渡してはどうでしょうか? Matlab はcopy-on-writeを使用するため、書き込みを行わない限り、それらを渡してもコードの効率に影響はありません。

于 2012-04-13T19:25:53.840 に答える