MATLAB Answers

0

illegal use of reserved keyword elseif every time i run it

Asked by mohannad issa on 17 May 2018 at 17:58
Latest activity Commented on by John Kelly on 18 May 2018 at 19:08

hello all if any one can tell me whats the problem in this code every time i run it illegal use of reserved keyword elseif every time i run it.

tau=input('enter approximate pulse width:');
type_wave=input('Enter waveform type: 1 =decaying exponential; 2=sinewave:');
if type_wave== 1
t_max=input('Enter duration of exponential:');
elseif type_wave==2
t_max=1;
end
clf
a=[];
t=0:.01:t_max;
cn=tau;
n_max=floor(t_max/tau)
for n=1:n_max
LL=(n-1) * tau;
UL=n* tau;
If type_wave==1
a(n)=(1/cn)*quad(@integrand_exp,LL,UL);
elseif type_wave==2
a(n)=(1/cn)* quad(@integrand_sine,LL,UL);
end
end
disp('')
disp('c n')
disp (cn)
disp(' ')
disp('Expansion coefficients(approximated pulses not normalised:')
disp(a)
disp (' ')
x_approx=zeros(size(t));
for n=1:n_max 
x_approx=x_approx + a(n)*phi(t/tau,n-1);
end
if type_wave==1
MSE=quad(@integrand_exp2,0,t_max)- cn*a*a';
elseif type_wave==2
MSE =quad(@integrand_sine2,0,t_max) - cn*a*a';
end
disp('Mean-squared error:')
disp(MSE)
disp(' ')
if type_wave==1
plot(t,x_approx),axis([0 t_max -inf inf]),xlabel('t'),ylabel('x(t);x_a_p _p_ r_ o_ x(t)')
hold
plot(t,exp(-t))
title(['approximation of exp(-t) over [0,',num2str(t_max),'] with contigious rectangular pulses of
 width',num2str(tau)])
elseif type_wave==2
plot(t,x_approx),axis([0 t_max -inf inf]),xlabel('t'),ylabel('x(t);
x_a_p_p_r_o_x(t)')
hold
plot(t,sin(2*pi*t))
title(['Approximation of sin(2*pi*t) over [0,',num2str(t_max),']
with contigious rectangular pulses of width',num2str(tau)])
end
function z =integrand_exp(t)
z=exp(-t);
function z =integrand_sine(t)
z=sin(2*pi*t);
function z= integrand_exp2(t)
z=exp(-2*t);
function z = integrand_sine2(t)
z=(sin(2*pi*t)).^2;

enter approximate pulse width:0.125

Enter waveform type: 1 =decaying exponential; 2=sinewave:2

n_max =

     8

  2 Comments

(Answers Dev) Restored edit

Please do not delete your question after obtaining an Answer from the MATLAB Community. The Community Members spent a lot of time and effort on answering your question. This question and answer will be beneficial in the future to other Community Members who have a similar problem

Sign in to comment.

Tags

1 Answer

Answer by Walter Roberson
on 17 May 2018 at 18:38

"If" is not a valid MATLAB keyword.

Corrected version attached.

  3 Comments

thank u so much but now there is another error Undefined function 'integrand_sine' for input arguments of type 'double'. thanks for replying

I do not get that far. My runs stop at the line

x_approx=x_approx + a(n)*phi(t/tau,n-1);

because phi is not defined.

You need to define integrand_sine2 - it's not a built-in function as far as I can see.

Sign in to comment.


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today