Я пишу функцию в Matlab, которая предлагает пользователю выбрать инструмент (.wav-файл), который будет читаться с использованием функции wavread
.Matlab User Input/While Loop
Я пытаюсь включить обработку ошибок или обработку неправильных входов от пользователя.
До сих пор моя функция выглядит следующим образом:
prompt = 'Select Instrument, Piano: [P], Fork: [F], Violin: [V], Gameboy: [G]';
str = input(prompt,'s');
if isempty(str)
str = 't';
end
while(str ~= 'P') || (str ~= 'F') || (str ~= 'V') || (str ~= 'G')
prompt = 'Invalid Selection! Choose, Piano: [P], Fork: [F], Violin: [V], Gameboy: [G]';
str = input(prompt,'s');
if isempty(str)
str = 't';
elseif (str == 'P') || (str == 'F') || (str == 'V') || (str == 'G')
break
end
end
При появлении во время цикла, он успешно запрашивает у пользователя и читает в .wav
, но если пользователь нажимает P
, F
, V
или G
на первой строке, то цикл в то время как все еще используется и "Invalid Sel... "
по-прежнему отображается ...
Я не знаю, как я должен это осуществление ....
О, конечно. Теперь я чувствую себя глупо. Спасибо, что поняли это. Проблема решена: D Также '~ any ('PFVG' == str)' действительно классная строка кода, я собираюсь использовать это. Спасибо за ваше время. – Reanimation