
Angenommen, man hat die Funktionen f(i)
und g(j)
. Wie könnte man eine Funktion schreiben h(k)
, bei der die Definitionsmenge k
von h
aus allen besteht k=i+j
(d. h. jeder Punkt h(k)
ist eine Funktion von f
bei i
und g
bei j
für alle Paare von i
und , j
die erfüllen k=i+j
). Zum Beispiel:
für alle k=i+j
. Der Definitionsbereich von h
wäre also und wäre k=2:25
beispielsweise gleich , da beide Kombinationen erfüllen .h(3)
f(1)*g(2) + f(2)*g(1)
k=i+j
Dies ist mithilfe von Schleifen einfach zu bewerkstelligen, ich möchte die Funktion jedoch in anonymer Funktionsform (also h = @(k) f(i) ... g(j)
) zusammenstellen. Wie kann dies erreicht werden?
Antwort1
Seien a
und b
bekannte Variablen für die Domänen i und j. Dann könnte die von Ihnen beschriebene Funktion folgendermaßen aussehen:
fun=@(k) sum(sum(transpose(f1(k-b(ismember(b,(k-a)))))*f2(b(ismember(b,(k-a))))))
wobei f1
und f2
anonyme Funktionen sind, die f(i) und g(j) entsprechen. k
ist ein gültiger Skalar.
Hinweis: Es wird möglicherweise nicht als gute Praxis angesehen, eine anonyme Funktion für etwas nicht Triviales zu verwenden.
Hinweis 2: Ich habe weder Szenarien mit nicht eindeutigen Domänen für i und j noch negative Werte berücksichtigt.