Switch case option valid for two cases?

7 views (last 30 days)
Rhiannon Vieceli
Rhiannon Vieceli on 31 Jul 2019
Edited: dpb on 1 Aug 2019
Hi, there.
Thanks in advance for any help!
I'm trying to extract P and/or S wave velocity profiles from corresponding text files. Here is what I'm trying. It doesn't seem to like that 'ps' is being called for both cases.
I know I could just copy the separate 'p' and 's' case options into a third 'ps' option, but I was hoping there was a way to not do that.
n = input('Which velocity model(s)? Enter p, s, or ps in single quotes: ');
switch n
case {'p','ps'}
% code to extract P velocity from P velocity text file
case {'s','ps'}
% code to extract S velocity from S velocity text file
otherwise
warning('Invalid choice')
end

Accepted Answer

dpb
dpb on 31 Jul 2019
Edited: dpb on 1 Aug 2019
But, presuming 'ps' means to do both 'p' and 's', you need that case as well as written anyway because in Matlab the switch block case statements do NOT "fall through" as in C.
opt=input('Which velocity model(s)? Enter p, s, or ps: ','s'); % return string
if contains(opt,'p')
% code to extract P velocity from P velocity text file
end
if contains(opt,'s')
% code to extract S velocity from S velocity text file
end
does either or both and is also insensitive to your user entering 'sp' instead of 'ps'. Of course, it will also do both if user enters 'stop' so should probably do some input verification as well.

More Answers (0)

Categories

Find more on Modeling in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!