Why the function that I created won't be called?
11 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Suha Ali Alshammari
am 12 Aug. 2020
Kommentiert: Suha Ali Alshammari
am 12 Aug. 2020
I have a code that convert text to speech, I added the "function" keyword to it so it became a function. When I run it as a function, it works perfectly!
But I am struggling to call that function in another script I wrote -with the intention of making use of the function I made by calling it- but to no vail! it can not be called ;( when I type its name in the other script, it just seems like its an ordinary word and not a function!
the error I get is: >> eegamplitude
Error using relaxed
Too many output arguments.
Error in eegamplitude (line 4)
A = relaxed;
although I'm pretty sure that I created it correctly and that the new script is being run in the same folder where the function file is stored!
PLEASE help! it is urgent ;( Thanks to whoever answers, in advance <3
%relaxed function
function relaxed
userPrompt = 'Enter the TEXT';
titleBar = 'Text to Speech';
defaultString = 'I am relaxed!';
caUserInput = inputdlg(userPrompt, titleBar, 1, {defaultString});
if isempty(caUserInput)
return;
end;
caUserInput = char(caUserInput);
NET.addAssembly('System.Speech');
obj = System.Speech.Synthesis.SpeechSynthesizer;
obj.Volume = 100;
Speak(obj, caUserInput);
end
%stressed function
function stressed
userPrompt = 'Enter the TEXT';
titleBar = 'Text to Speech';
defaultString = 'I am stressed!';
caUserInput = inputdlg(userPrompt, titleBar, 1, {defaultString});
if isempty(caUserInput)
return;
end;
caUserInput = char(caUserInput);
NET.addAssembly('System.Speech');
obj = System.Speech.Synthesis.SpeechSynthesizer;
obj.Volume = 100;
Speak(obj, caUserInput);
end
%the code that I thought I can call my functions with
function eegamplitude
for m = 1:6
if m < 4
A = relaxed;
else A =stressed;
end
A
end
end
0 Kommentare
Akzeptierte Antwort
Steven Lord
am 12 Aug. 2020
From the error message you showed, on line 4 of eegamplitude you're calling relaxed with 0 input arguments and 1 output argument.
Let's look at the definition of relaxed.
%relaxed function
function relaxed
This function is defined to accept a maximum of 0 input arguments and return a maximum of 0 output arguments.
See the section "Syntax for Function Definition" on this documentation page for instructions on how to define a function that returns output arguments. Or, if relaxed is supposed to not return any output arguments, remove the output argument from your call to relaxed on line 4 of eegamplitude.
Weitere Antworten (1)
Fangjun Jiang
am 12 Aug. 2020
Your function "relaxed" does not have any return values so you can't do "A=relaxed" because "A" can't be assigned. That is the error message.
Siehe auch
Kategorien
Mehr zu Get Started with MATLAB 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!