MATLAB: “Operands to the || and && operators must be convertible to logical scalar values” issue where those operators haven’t been used?? Potentially caused by vpaintegral.

||logical scalar valuesMATLABoperandsoperatorsvpaintegral

Hi, my code is throwing up the error shown below, can anyone help solve the cause of the issue?
Operands to the || and && operators must be convertible to logical scalar values.
Error in sym/vpaintegral (line 182)
(isinf(b) && isempty(symvar(b)) && ~isreal(b))
Error in BASICscript (line 66)
k_timedependant(i)=K_quasistatic(i)*(1.25*vpaintegral(sigma_prime(i),s,0,t(i)-tau)+vpaintegral(sigma_prime(i)*sqrt(t(i)-s),s,t(i)-tau,t(i)));
I can't quite figure out why as those operators arn't part of the code and I don't understand vpaintergral enough to know if that's the issue… It does seem to run two iterations before bowing out…
Any help would be much appreciated.
The code is as below,
syms z s
%Droplet properties
r=0.001; % droplet radius (m)
V=400; % impact velocity (m/s)
rho=997; % at room temp (kg/m^3)
Initial_c=30e-6
%Glass properties
pois=0.25;
Beta=(1-2*pois)/2;
K_IC=0.75e6;
%Rayleigh Stress wave
const=2; % Constant defined in interim report
Co=1500; % Acoustic velocity(m/s)
Cr=Co+(const*V); % Rayleigh wave velocity (m/s)
sigma_max=rho*Cr*V*Beta;
k=(2*pi*Initial_c^2)/(3*Cr*r*V);
sigma_z=sigma_max*(exp(-0.8475*k*z)-0.5773*exp(-0.3933*k*z));
v_max=1580; %maximum crack velcoity (m/s)
%Triangular Wave
midpoint=(3*r*V)/(2*Cr^2);
grad=sigma_max/midpoint;
%Initialisation

crack_growth=0
final_t=3e-7;
iterations=1000;
t = [0:final_t/(iterations):final_t];
for i = 1:iterations+1;
%Calculation of Velocity Term
%Initialisation
if i>1
c(i)=c(i-1)
v_inst(i)=0
if v_inst(i-1)==0;
k_velocity(i)=1;
else
k_velocity(i)=1/((1+(v_inst(i-1)/(Cr-v_inst(i-1))))*(1-((0.531*v_inst(i-1))/Cr))^0.5);
end
else
k_velocity(i)=1;
c(i)=Initial_c
end
%Sigma prime designation
if t(i)>midpoint
sigma_prime(i)=-(grad);
else
sigma_prime(i)=(grad);
end
%Calculation of Quasi-Static and Time-Dependant Terms
funct(i)=(1-(z/c(i))^2)*(0.2945-0.3912*(z/c(i))^2+0.7685*(z/c(i))^4-0.9442*(z/c(i))^6+0.5094*(z/c(i))^8);
K_quasistatic(i)=2*sqrt(c(i)/pi)*vpaintegral((sigma_z*(1+funct(i)))/sqrt(c(i)^2-z^2),z,0,c(i));
tau(i)=((1.25^2*pi^2)*c(i))/(4*Cr);
k_timedependant(i)=K_quasistatic(i)*(1.25*vpaintegral(sigma_prime(i),s,0,t(i)-tau)+vpaintegral(sigma_prime(i)*sqrt(t(i)-s),s,t(i)-tau,t(i)));
%Dynamic Stress intensity factor calculation
K_D(i)=k_velocity(i)*K_quasistatic(i)*k_timedependant(i);
%Stress intensity factor comaprision check
if K_D(i)>K_IC
%Crack Velcocity Calculation
v_inst(i)=v_max*(1-(K_IC/K_D)^2);
if i>1
v_avg(i)=(v_inst(i)+v_inst(i-1)/2);
crack_growth(i)=crack_growth(i)+(v_avg(i)*(t(i)-t(i-1)));
c(i)=Initial_c+crack_growth(i);
else
v_avg(i)=0;
crack_growth(i)=0;
c(i)=Initial_c;
end
else
v_avg(i)=0;
crack_growth(i)=0
c(i)=Initial_c;
end
end

Best Answer

tau(i)=((1.25^2*pi^2)*c(i))/(4*Cr);
tau is a vector
k_timedependant(i)=K_quasistatic(i)*(1.25*vpaintegral(sigma_prime(i),s,0,t(i)-tau)+vpaintegral(sigma_prime(i)*sqrt(t(i)-s),s,t(i)-tau,t(i)));
You are using the entire vector in building the upper bounds for integration. You should be using tau(i) instead of tau