Switch case option valid for two cases?
7 views (last 30 days)
Show older comments
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
0 Comments
Accepted Answer
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)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!