Error in using Inline function and fzero
2 ビュー (過去 30 日間)
古いコメントを表示
Venkatesh M Deshpande
2014 年 3 月 20 日
コメント済み: Venkatesh M Deshpande
2014 年 3 月 23 日
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 件のコメント
採用された回答
Star Strider
2014 年 3 月 20 日
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 件のコメント
Star Strider
2014 年 3 月 23 日
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.
その他の回答 (1 件)
参考
カテゴリ
Help Center および File Exchange で Function Creation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!