Matlab gpuArraysを使用して、最も近い値のような計算結果の最小値のインデックスを探したいと思います。Arrayfunを使用したMatlab GPUの行
しかし、arrayfunのシナリオでは、min関数は機能を提供していないようです。
function grid_gpu_test
gridSize = 8;
grid = gpuArray(rand(gridSize));
all_c=1:gridSize; % because : is not supported
function X = min_diff(row)
X = min(abs(grid(row,all_c)-grid(row,1)))
end
rows = gpuArray.colon(2, gridSize)';
arrayfun(@min_diff, rows)
end
私は次のエラーを取得:
Too few input arguments supplied to: 'min'. Error in 'grid_gpu_test' (line: 9)
これを達成する方法はありますが、次のコードで
?私はmin(gpuArray)
を使用することは、arrayfunにないときは正常に動作することを知っていますが、私は行列操作に単純化しない操作でこれを実現したいと思います。
ありがとうございました!私がarrayfunを使いたいのは、最初の列と各列の違いよりも複雑な操作をしたいからです。私は、明示的にそれらを格納せずに、各要素の最も近い一致する5x5近傍を見つけたいと思います。それは意味をなさないでしょうか、あるいは私は質問コードを改訂するべきですか? – MrMartin
グリッドサイズ+1であってはなりません。修正しました。 – MrMartin