Error in using Inline function and fzero
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Venkatesh M Deshpande
le 20 Mar 2014
Commenté : Venkatesh M Deshpande
le 23 Mar 2014
Hello, Can anybody help me? I want to figure out where I am doing a mistake in program. The only variable is X and Cp is an input.
Cp = double(zeros(49792,1));
P = size(x.Time_Series);
Q = P(1,1);
Cp(1,1)= 0.126826003999670;
Cp(2,1)= 0.325943036562508;
for k=3:Q;
k
hx = inline( '12.175*(X - 2*Cp(k-1,1) + Cp(k-2,1)) + 13.525*((X - Cp(k-1,1))* abs(X - Cp(k-1,1))) + X - SINGLE_FINAL_TIME_SERIES_OF_TAPS_NEAR_DOMINANT_OPENING(k,1)','X',Cp);
hp = fzero (hx,0,Cp,SINGLE_FINAL_TIME_SERIES_OF_TAPS_NEAR_DOMINANT_OPENING(k,1));
Cp(k) = hp(1);
end
I am getting this error
Error: The expression to the left of the equals sign is not a valid target for an
assignment.
If in inline function, I remove Cp which is given after X (at the very last near the bracket), then it shows error: too many inputs to inline function. Pls help. thanks.
0 commentaires
Réponse acceptée
Star Strider
le 20 Mar 2014
It doesn’t like the ‘==’ in SINGLE_FINAL_TIME_SERIES_OF_TAPS_NEAR_DOMINANT_OPENING(k,1)==0.
Unlike anonymous functions that use workspace variables, inline functions ignore anything that isn’t in their argument list. It has no idea what SINGLE_FINAL_TIME_SERIES_OF_TAPS_NEAR_DOMINANT_OPENING(k,1) or k are.
Also, fzero only accepts single-variable functions.
9 commentaires
Star Strider
le 23 Mar 2014
My pleasure!
Wow! And a tribute, too! Thank you!
I have a background in physical chemistry and am an instrument-rated private pilot, so I'm slightly familiar with what you are doing. I do not have sufficient background in fluid dynamics to understand it in any detail, though.
Plus de réponses (1)
Voir également
Catégories
En savoir plus sur Function Creation dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!