multiplizieren Funktionen in matlab
Ich versuche zu lösen folgende Funktionen
k=2;
G(1)=292000.0;
G(2)=262000.0;
Ld(1)=0.00396;
Ld(2)=0.0344;
deps=10;
aa=3.7;
ms=0.0;
for i=1:k
ms=@(x) ms+(G(i)/Ld(i))*exp(-x./Ld(i))
end
f=@(x) (exp(x.*2*deps)-exp(-x.*deps))/((aa-3)+(2*exp(x.*deps)+exp(-2*x.*deps)))
g=@(x) ms(x).*f(x)
g(1);
aber ich erhalte die Fehlermeldung "Undefinierte Funktion oder Methode 'plus' für input-Argumente des Typs 'function_handle'."
hoffe, jemand kann mir helfen..Danke
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie Jonas schon hinwies, das problem ist, dass Sie behandeln
ms
Synonym wie aus einem Zahlenwert und einer function handle, die man nicht tun kann.Braucht man eigentlich nicht die for-Schleife zu erzeugen, die anonyme Funktion
ms
. Sie können es schaffen, in einer Zeile mit der Funktion SUMME etwa so:Dadurch erhalten Sie ein Endergebnis von
g(1) = 0.0199;
.Den problematischen Linien sind:
Innerhalb der Schleife, die Sie behandeln
ms
als function handle, sowie eine Zahl, die nicht funktionieren.Obwohl rekursive definition einer Funktion behandeln, ist wahrscheinlich nicht der beste Weg zu gehen, ist es - zu meiner überraschung - möglich. Man kann also schreiben: