index must be a positive integer or logical.

%Programme to model Damped free vibration in a cannon %clear Screen clear; %define constants m=500; k=10000; %Evaluate natural frequency wn=sqrt(k/m) %Evaluate natural time period tn=(2*pi)/wn %Enter initial conditions xmax=0.4; %calculate critical damping constant cc=2*m*wn %set initial displacement & velocity xo=0; xdz=xmax*wn*exp(1); z=1.5; %defining constants C1 & C2 C1=(wn(z+sqrt(z^2-1))+xdz)/(2*wn*(sqrt(z^2-1))) C2=(wn(z-sqrt(z^2-1))-xdz)/(2*wn*(sqrt(z^2-1)))
But I'm getting an error Attempted to access wn(2.61803); index must be a positive integer or logical. Error in Cannon2 (line 20) C1=(wn(z+sqrt(z^2-1))+xdz)/(2*wn*(sqrt(z^2-1)))
In the workspace it's calculated at 4.4721 and I've used term wn in previous code and it worked fine without being an integer

 채택된 답변

Michael Haderlein
Michael Haderlein 2014년 10월 28일

0 개 추천

I dont know how this equation should read, but might there be a * missing? You write
C1=(wn(z+sqrt(z^2-1))+xdz)/(2*wn*(sqrt(z^2-1)))
but you might mean
C1=(wn*(z+sqrt(z^2-1))+xdz)/(2*wn*(sqrt(z^2-1)))
Same for C2.

댓글 수: 1

Gary
Gary 2014년 10월 28일
That fixed it, schoolboy error.
Thank you Michael

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Elementary Math에 대해 자세히 알아보기

질문:

2014년 10월 28일

댓글:

2014년 10월 28일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by