MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by Venkatesh Deshpande on 20 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.

*No products are associated with this question.*

Answer by Star Strider on 20 Mar 2014

Accepted answer

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.

Show 6 older comments

Venkatesh Deshpande on 23 Mar 2014

Eureka! It does produce the results very fast. Unbelievably in 163 seconds for all 49792 values. Thanks a lot for this. I want to explain you what I am trying to achieve here although it may not be relevant to your field. Cp means pressure coefficient. Pr. coefficients are measured in a boundary layer wind tunnel at frequency of 500 Hz for 100 s. That is why there are 50000 values approx represented by SFTSOTNDO. The values measured were external Cp and I wanted to derive internal Cp using the equation above. There is no need of plot between these two. However, the values I have got are relatively higher. They should all be less than 3 or 4. But leaving that, it is major work done for me. Thanks a lot again. I have named this program Star_Strider as a tribute and a sign of respect.

Star Strider on 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.

Venkatesh Deshpande on 23 Mar 2014

Thanks for helping and telling about your background. Take care.

Answer by Sean de Wolski on 20 Mar 2014

Avoid using `inline`, instead use an anonymous function

## 0 Comments