How can I check for semicolon termination of my own function
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commento
Doug Hull
il 21 Mar 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'.
Risposta accettata
Walter Roberson
il 21 Mar 2011
Semi-colon does not suppress anything explicitly printed: it only affects whether the value of assignments are automatically printed.
4 Commenti
Walter Roberson
il 22 Mar 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.
Più risposte (1)
Jan
il 22 Mar 2011
1 Commento
Walter Roberson
il 22 Mar 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.
Vedere anche
Categorie
Scopri di più su Function Creation in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!