Calling a function with 2 inputs using only a single input
29 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Govind Sankar Madhavan Pillai Ramachandran Nair
il 3 Ott 2018
Commentato: Rik
il 4 Ott 2018
I have a function with inputs a and b and when i tried to call the function with one input a and use the inbuilt function isempty(b) its showing error as not enough input arguments. How can I correct this.
function out = function_name(a,b)
if ~isempty(b)
b = 0.1;
end
0 Commenti
Risposta accettata
Adam
il 3 Ott 2018
Modificato: Adam
il 3 Ott 2018
It depends how you want to handle it. Do you want 'b' to be an optional argument or do you want to force the caller to always give a value for b and support [] as a a value for it?
As the final argument to a function there is not usually much point doing the latter so I would just do e.g.
function out = myFunction( a, b )
narginchk( 1, 2 )
if exist( 'b', 'var' )
% Do some validation - optional I suppose!!
else
b = 0.1;
end
If you wanted to support 'a' being optional then you could do this by allowing [] to be a valid input and would do like above, but include
if exist( 'a', 'var' ) && ~isempty( a )
0 Commenti
Più risposte (2)
Rik
il 3 Ott 2018
You need to test for existence, not for being empty, as someone could still use an empty input.
function out=function_name(a,b)
if ~exist('b','var')
b=0.1;
elseif isempty(b)
error('b should not be empty')
end
out=a*b;
end
You can also use nargin to check the number of input arguments.
0 Commenti
Govind Sankar Madhavan Pillai Ramachandran Nair
il 4 Ott 2018
1 Commento
Rik
il 4 Ott 2018
You're welcome. The best way to thank us is to accept the answer that works best and give other working answers a vote.
Vedere anche
Categorie
Scopri di più su Matrix Indexing 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!