Parse error Simple Function Problem

조회 수: 7 (최근 30일)
Billiam
Billiam 2018년 1월 15일
댓글: iorngbough iorpinen 2019년 10월 7일
Hi I am brand new to matlab and am writing a simple program for an assignment. We are given a piecewise function with three parts of the height of a rocket. and are supposed to write a function to calculate the height. I did this but am getting a parse error for the t's inside the if and if elses. Any guidance is much appreciated!
Function[y]=height(t)
if(t<0)
y=0;
elseif(t<15)
y=38.1454t+0.13743t^3;
elseif((t<33)&&(t>=15)
y=1036+103.909(t-15)+6.18425(t-15)^2-0.428(t-15)^3;
elseif(t>33)
y=2900-62.468(t-33)-16.9274(t-33)^2+0.41796(t-33)^3
end

채택된 답변

Star Strider
Star Strider 2018년 1월 15일
You need to specify the multiplication operators (*). I added element-wise exponentiation. You also need to save your function to its own file as height.m on your MATLAB user path.
This is not as efficient as it could be, however it will get you started:
function [y]=height(t)
if (t<0)
y=0;
elseif (t<15)
y=38.1454*t+0.13743*t.^3;
elseif (t<33) & (t>=15)
y=1036+103.909*(t-15)+6.18425*(t-15).^2-0.428*(t-15).^3;
elseif (t>33)
y=2900-62.468*(t-33)-16.9274*(t-33).^2+0.41796*(t-33).^3;
end
end
t = linspace(0, 50, 50);
for k1 = 1:numel(t)
h(k1) = height(t(k1));
end
figure
plot(t, h)
grid
Experiment to get the result you want.
  댓글 수: 1
Walter Roberson
Walter Roberson 2018년 1월 15일
One thing to pay attention to here is that Star Strider took care to pass in only a single numeric value instead of passing in a vector of values. Your code is not designed to handle vectors of values. You should consider using logical indexing.

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

추가 답변 (1개)

iorngbough iorpinen
iorngbough iorpinen 2019년 10월 6일
Hi please someone should help out,iam new in MATLAB iam writing a program on two first order differential equation using shooting method and iam getting 'parse'error at the first bracket after the "equal to sign"
Function [dp]=(r,p) E=50;q1=4;q2=-2;B=1672;rho=0.32×10^-9;l=1; do=[p(2);(-2*E-2*q1*q2*r^-1-2*B*exp(-r/rho)+l*(l+1)*r^-2*p(1)];
  댓글 수: 3
Star Strider
Star Strider 2019년 10월 6일
@iorngbough iorpinen —
Please post your Answer as a new Question. It does not relate to this thread.
iorngbough iorpinen
iorngbough iorpinen 2019년 10월 7일
Please iam sorry it was a mistake

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

카테고리

Help CenterFile Exchange에서 String Parsing에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by