Accepting Multiple String Inputs

Hey! so i'm trying to condense some code i wrote yesterday into something more compact. the first step is just running a while loop that runs a program i made (called stuff.m) if the statement is true. but i want it to be able to accept a big selection of inputs, it's not happy with my choice of "strcmp(elmnt,'fine','good'))". any ideas?
thanks!
elmnt = input('how are you? ','s');
while (strcmp(elmnt,'fine','good'))
run stuff
end

 Accepted Answer

use strcmpi instead, if you want to make sure your user will type those strings as stated. put your "accepted" strings into a cell array:
Accepted = {'fine','good','great','fantastic','fan-dabby-dozy'};
while any(strcmpi(elmnt, Accepted))
run stuff
end
Look up strfind/findstr/regexp to see if theres a better way of doing what you want to.

3 Comments

kenny
kenny on 7 Jun 2013
Edited: kenny on 7 Jun 2013
it doesn't like the while line but creating the array and the strcmpi were nice catches- thanks. i'll try making this work
Did you use "{" and "}" on the accepted line?
oh! i'm an idiot and misspelled "accepted". i really appreciate your help, thank you.

Sign in to comment.

More Answers (0)

Categories

Asked:

on 7 Jun 2013

Community Treasure Hunt

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

Start Hunting!