Switch case option valid for two cases?

8 Ansichten (letzte 30 Tage)
Rhiannon Vieceli
Rhiannon Vieceli am 31 Jul. 2019
Bearbeitet: dpb am 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

Akzeptierte Antwort

dpb
dpb am 31 Jul. 2019
Bearbeitet: dpb am 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.

Weitere Antworten (0)

Kategorien

Mehr zu Modeling finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by