Can't solve parse error

4 vues (au cours des 30 derniers jours)
Alexis
Alexis le 8 Juil 2021
Commenté : Alexis le 8 Juil 2021
I am learning how to use inputParser and am stuck here:
function windowedAudio = windowAudio(audioIn,Fs,varargin)
defaultWin = 4;
defaultThresh = 0.1;
defaultRamp = 30;
defaultLong = 500;
defaultShort = 100;
p = inputParser;
addRequired(p,'audioIn',@isnumeric);
addRequired(p,'Fs',@isnumeric);
addParameter(p,'WindowLength',defaultWin,@checkWinLen);
addParameter(p,'SilenceThreshold',defaultThresh,@checkThresh);
addParameter(p,'RampLength',defaultRamp,@checkRamp);
addParameter(p,'LongSilence',defaultLong,@checkLong);
addParameter(p,'ShortSilence',defaultShort,@checkShort);
parse(p,audioIn,Fs,varargin{:});
end
It seems to run beyond that final line if I call the function with only the required arguments:
windowAudio(speechWav,Fs)
But when I try using one of the optional parameters,
windowAudio(speechWav,Fs,'WindowLength',4)
Error using windowAudio (line 31)
The value of 'WindowLength' is invalid. Not enough input arguments.
I have been Googling forever and can't figure out what I have done wrong. Can anyone with fresh eyes help me here?

Réponse acceptée

Alek Antic
Alek Antic le 8 Juil 2021
Hi,
I have reproduced your error and have found that your issue is most likely coming from your checkWinLen definition. It seems like it requires more than one argument, which is not allowed in a validation function, as documented here.
  1 commentaire
Alexis
Alexis le 8 Juil 2021
Thanks @Alek Antic, I didn't notice that in the documentation. Cheers!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Argument Definitions dans Help Center et File Exchange

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by