nargin and the if statement
Ältere Kommentare anzeigen
Hi Im trying to understand how to use nargin but am having an issue. Hopefully someone can shed some light on. I copied this function from my text book
function z = sqrtfun(x,y)
if (nargin==1)
z = sqrt(x);
elseif (nargin==2)
z = sqrt(x+y);
end
Then in another script I have put together this code to call the function
clc;
clear;
close all;
x = input('x');
y = input('y');
z = sqrtfun(x,y);
fprintf('Answer z ::: %4.2f\n', z);
The issue i'm having is that if i leave y blank no value is displayed for z. If i enter a value for x and y i get an output value for z. I don't know why this happens??
Akzeptierte Antwort
Weitere Antworten (1)
KSSV
am 22 Sep. 2016
You change the function as follows:
function z = sqrtfun(x,varargin)
if (nargin==1)
z = sqrt(x);
elseif (nargin==2)
y = varargin{1} ;
z = sqrt(x+y);
end
When you enter one value i.e. x nargin = 1 then it goes to if, if you enter two values i.e x,y nargin will be 2. y will be stored in varargin and we are calling it in else statement.
2 Kommentare
Sultan Al-Hammadi
am 27 Nov. 2018
what does nargin do?
and what is the functionality of "varargin{1}"?
Steven Lord
am 27 Nov. 2018
See the description and examples on the nargin function documentation page for more information about what it does and how to use it.
Kategorien
Mehr zu Argument Definitions finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!