2

次の関数があるとします。

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ます。

4

1 に答える 1