MATLAB: How to plot a conditional function

conditionif statementplot

I am trying to combine logarithmic (BH2) and polynomial (BH1) trendlines into a blended trendline (BH3) that passes through the origin. My current code plots BH3 for the final condition for all t. Please could someone offer corrected code? Here are functions and problematic code is below. Many thanks in advance.
  • BH1: y = 7.1851*ln(t)-2.62
  • BH2: y = -0.06*t^2+2.185*t
  • BH3: 0<t<=3.07 y= BH2 3.07<t<=7.92 y= 0.67*BH2+0.33*BH1 t>7.92 y= 0.5*BH1+0.5*BH2
t = 0:0.5:30; %define time vector
BH1 = 7.81*log(t)-2.625; %define logarithmic trend
BH2 = -0.06*t.^2+2.19*t; %define polynomial trend
%now define combination of trends
if t <= 3.07 %force through origin
BH3 = BH2;
elseif 3.07 < t <= 7.92; %intial blend
BH3 = 0.67*BH2 + 0.33*BH1;
else %equal blend
BH3 = 0.5*BH2 + 0.5*BH1;
end
plot(t,BH1,'r',t,BH2,'r',t,BH3,'b');

Best Answer

t2 = 3.07 < t & t <= 7.92; % EDIT
t3 = t > 7.92;
BH3 = BH2;
BH3(t2) = BH3(t2)*.67 + BH1(t2)*.33;
BH3(t3) = BH3(t3)*.5 + BH1(t3)*.5;