How can I check for semicolon termination of my own function
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
My function does something and then writes information to the screen by using
function a = say_hi(b)
a = b;
fprintf(1, 'Hello World');
end
I would like to check if the line in the script that called this function was terminated by a semicolon, such that merely does a = b in that case. Is that possible?
Kind regards,
Jan
1 Kommentar
Doug Hull
am 21 Mär. 2011
OP said in answers instead of comments:
---
Thanks Walter,
I understand what you say. Let me rephrase the question. I could do what I want by defining the function as follows:
function a = say_hi(b, print)
a = b;
if (print == 1)
fprintf(1, 'Hello World');
end
end
But then I would have an additional input parameter, which is undesired. I am looking for a keyword such as 'nargin' that is available inside the function space to check for its termination i.e. '\n' or ';\n'.
Akzeptierte Antwort
Walter Roberson
am 21 Mär. 2011
Semi-colon does not suppress anything explicitly printed: it only affects whether the value of assignments are automatically printed.
4 Kommentare
Walter Roberson
am 22 Mär. 2011
With eval, I could construct a clause that had a semi-colon if and only if the test said that there was no semi-colon. Remember Matlab is interpreted and what is to be executed can be constructed on the fly.
Weitere Antworten (1)
Jan
am 22 Mär. 2011
1 Kommentar
Walter Roberson
am 22 Mär. 2011
Your first function can possibly be rewritten as:
function a = say_hi(b)
if nargout
a = b;
else
fprintf(1, 'Hello World');
end
In your second function, you should use strcmpi(param, 'DisplayOn') and for the value, instead of looking for the string 'true', you should look for non-zero values, to be consistent with how parameters are defined for the Matlab libraries.
I believe there are utility routines that can do the parameter parsing for you; you can find examples in nearly any of the Mathworks-provided routines.
Siehe auch
Kategorien
Mehr zu Function Creation finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!