0

2つの配列XとYがあり、行列M(i、j)= some_func(X(i)、Y(j))が必要だとします。ループを使用せずにそれを取得するにはどうすればよいですか?

4

2 に答える 2

4

オプションの場合は、bsxfunを使用するのが最善の答えです。bsxfunのヘルプによると、次の場合に限り、一般的なダイアディック関数で機能します。

  FUNC can also be a handle to any binary element-wise function not listed
    above. A binary element-wise function in the form of C = FUNC(A,B)
    accepts arrays A and B of arbitrary but equal size and returns output
    of the same size. Each element in the output array C is the result
    of an operation on the corresponding elements of A and B only. FUNC must
    also support scalar expansion, such that if A or B is a scalar, C is the
    result of applying the scalar to every element in the other input array.

関数がスカラー入力のみを受け入れる場合、ループは単純な代替手段です。

于 2013-03-06T21:07:10.710 に答える
3

あなたの漠然とした質問に答えるのは難しいです、そしてそれは最終的にあなたの機能に依存します。できることはmeshgrid、通常はドット演算子を使用して、操作を使用してから実行することです。

例えば

x = 1:5;
y = 1:3;

[X,Y] = meshgrid (x,y)

M = X.^Y;
于 2013-03-06T19:53:12.247 に答える