MATLAB: Applying a string of user inputs within a while-loop

elseifwhile loop

Hi folks, realy new to MATLABS and with the recent events forcing campus closure I am having some difficulties without the in class help from the instructor.
I am attempting to code a simple calculator for projectile motion and have come up with thus so far:
How can I use the while loop to request whether or not to continue with the calculation? Really am not sure what I am doing incorrectly here.
This is the error I am presented with: Line 11, Collumn 5: "At least one END is missing: the statement may begin here."
Thank you for any help!
angle=input(['Enter the angle of trajectory [degrees] : '])
height=input(['Enter the height at which the projectile will be launched [feet] : '])
velocity=input(['Enter the velocity as the projectile is initially launched [feet/second] : '])
disp(['You have selected: ANGLE = ' num2str(angle,'%5.3f') ' degrees; HEIGHT = ' num2str(height,'%10.3f') ' feet; VELOCITY= ' num2str(velocity,'%10.3f') ' ft/s'])
while resume=input(['Would you like to continue with these calculations?','s'])
quit='NO'
cont='YES'
if ischar(resume) && strcmp(resume,quit)
disp(['Restarting caclulations...'])
break
else if ischar(resume) && strcmp(resume,cont)
disp(['Solving for projectile motion...'])
continue
end

Best Answer

michael - for the error that you mention ("At least one END is missing: the statement may begin here"), this can be fixed by adding the missing end to the (in this case) while loop. Another error has to do with the while condition
while resume=input(['Would you like to continue with these calculations?','s'])
. An assignment cannot be made here as this statement does not evaluate to a boolean (true/false) and so doesn't quite make sense. You may want to do something like
while true
resume=input('Would you like to continue with these calculations?','s');
quit='NO';
cont='YES';
if ischar(resume) && strcmpi(resume,quit)
disp('Restarting caclulations...')
break;
elseif ischar(resume) && strcmpi(resume,cont)
disp('Solving for projectile motion...')
continue
end
end
Note some of the changes when compared against your code: use of strcmpi for case insensitive comparisons, removal of [] around strings since we aren't doing any concatenations, and use/placement of 's' in the input command. While the above works, it may not be exactly what you want. Why do you want the while loop? Is it so that the user can enter in valid angle, height, and velocity of the projectile? If they do not want to continue with these calculations, do you want to give them the opportunity to enter in new ones? Would you break out of the loop and solve the projectile motion only if the user wishes to continue with these calculations? Or do you want to continue solving for the projectile motion for various sets of inputs until the user wants to quit?