次の関数があるとします。
function x = printAndKeepX(x, y)
x
y
end
bsxfunそして私は次のように呼び出します:
bsxfun(@printAndKeepX, 1:4, 1);
本当にbsxfun要素ごとprintAndKeepXに、引数(x, y)がそれぞれ(1, 1)、(2, 1)、(3, 1)および(4, 1)であると、4 回呼び出されることが予想されます。ただし、出力は、次のように一度だけ呼び出されることを示してい(x, y)ます([1 2 3 4], 1)。
x =
1 2 3 4
y =
1
なんで?「要素」と見なされるものをどのように知ることができますか?
編集:
ドキュメントでは、呼び出された関数が 2 つのスカラーを受け取ることもあれば、ベクトル/行列とスカラーを受け取ることもあることが示唆されています。これらのどれが起こるかを確実に知ることができますか?
の通常バージョンと GPU バージョンの両方に興味がありbsxfunます。