次の関数があるとします。
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
ます。