MATLAB可很方便地实现输入参数和输出参数定制功能。使用该功能,函数输入变量的个数和输出变量的个数可按实际需求改变。
(1)请描述varargin、varargou、nargin、nargout的意义和功能,也即是用来干什么的?
(2)函数编程举例,要求函数体内需用到varargin、varargou、nargin、nargout四个变量。
以上请截图或拍照,各上传1副图。
MATLAB可很方便地实现输入参数和输出参数定制功能。使用该功能,函数输入变量的个数和输出变量的个数可按实际需求改变。
(1)请描述varargin、varargou、nargin、nargout的意义和功能,也即是用来干什么的?
(2)函数编程举例,要求函数体内需用到varargin、varargou、nargin、nargout四个变量。
以上请截图或拍照,各上传1副图。
varargin和varargout结构来定义函数的输入和输出参数,并使用nargin和nargout来获取函数调用时输入参数和输出参数的个数
1)利用varargin和varargout可以传递任意数目的输入参数和输出参数
function [s,varargout]=mysize(x)
% 调用nargout命令取得调用函数时返回参数的个数
out1=nargout;
% 确定varargout中元素个数
nout=max(out1,1)-1;
% 将输入数组的行数和列数组成的数组赋值给输出参数s
s=size(x);
% 分别将输入数组的行数和列数保存到varargout中
for k = 1:nout
varargout(k)={s(k)};
end
2)nargin 和 nargout在一个函数M文件内,调用nargin或nargout可以确定用户调用函数时设置了多少个输入参数和输出参数。如nargin(fun)和nargout(fun)。
% 定义函数vartest,带2个独立输入参数和1个varargin数组
function vartest(inputArg1,inputArg2,varargin)
% 取得varargin中元素的个数
optargin=size(varargin,2);
% 由nargin得到函数总的输入值的个数,从而求得在独立参数中的输入值的个数
stdargin=nargin-optargin;
fprintf('函数的输入值个数为:%d\n',nargin)
fprintf('独立参数中的输入值个数为: %d\n',stdargin)
end