matlab: den Definitionsbereich einer Funktion vom Definitionsbereich der Eingaben abhängig machen

matlab: den Definitionsbereich einer Funktion vom Definitionsbereich der Eingaben abhängig machen

Angenommen, man hat die Funktionen f(i)und g(j). Wie könnte man eine Funktion schreiben h(k), bei der die Definitionsmenge kvon haus allen besteht k=i+j(d. h. jeder Punkt h(k)ist eine Funktion von fbei iund gbei jfür alle Paare von iund , jdie erfüllen k=i+j). Zum Beispiel:

Bildbeschreibung hier eingeben

für alle k=i+j. Der Definitionsbereich von hwäre also und wäre k=2:25beispielsweise 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 aund bbekannte 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 f1und f2anonyme Funktionen sind, die f(i) und g(j) entsprechen. kist 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.

verwandte Informationen