
関数f(i)
とがあるとします。の定義域がすべてで構成されるg(j)
関数 をどのように記述すればよいでしょうか(つまり、とのすべてのペアに対して、各点は におけるおよびにおけるの何らかの関数です)。たとえば、h(k)
k
h
k=i+j
h(k)
f
i
g
j
i
j
k=i+j
すべての に対して が成り立ちますk=i+j
。 のドメインはh
となりk=2:25
、たとえばh(3)
は と等しくなります。なぜならf(1)*g(2) + f(2)*g(1)
、これらの組み合わせはどちらも を満たすからですk=i+j
。
これはループを使用して簡単に実行できますが、関数を匿名関数形式 (つまり、h = @(k) f(i) ... g(j)
) で構成したいと考えています。 これを実現するにはどうすればよいでしょうか?
答え1
a
とb
をドメイン i と j の既知の変数とします。記述する関数は次のようになります。
fun=@(k) sum(sum(transpose(f1(k-b(ismember(b,(k-a)))))*f2(b(ismember(b,(k-a))))))
ここでf1
、およびはf2
f(i)およびg(j)に対応する無名関数です。k
は有効なスカラーです。
注意: 重要でない用途に匿名関数を使用することは、良い方法とは言えないかもしれません。
注 2: i と j のドメインが一意でない場合や、負の値の場合のシナリオは考慮していません。