Вот один из способов реализации вашей функции:
function varargout = fname(input,varargin)
%# FNAME
%# Usage: output=fname(input)
%%# INPUT
if nargin<1
varargout(1:nargout) = {[]};
warning('Not enough input arguments.'), return
end
if ~isempty(varargin)
warning('Too many input arguments.')
end
%%# YOUR CODE: manipulate input, and compute output
output = input;
%%# OUTPUT
varargout{1} = output;
if nargout>1
warning('Too many output arguments.')
varargout(2:nargout) = {[]};
end
end
Очевидно, вы можете настроить предупреждающие сообщения по своему вкусу ...
Кроме того, если вы хотите, чтобы ваша функция просто печаталасообщение вместо выдачи предупреждений, замените все WARNING вызовами на простые DISP вызовы функций.
Примеры вызовов функций:
fname()
fname(1)
fname(1,2)
x = fname()
x = fname(1)
x = fname(1,2)
[x,y] = fname()
[x,y] = fname(1)
[x,y] = fname(1,2)
вышеуказанные вызовы выполняются, как ожидается (с указанием предупреждающих сообщений, когда это применимо).Одно предупреждение, однако, в последних трех вызовах, если бы переменная y
уже существовала в рабочей области до вызовов, она была бы перезаписана пустым значением y=[]
в каждом ...