rkp*_*rkp 5 arrays matlab arguments function
当你有一个带有可变数量参数的函数(比如ndgrid)时,如何将任意参数列表传递给该函数?
例如,我想制作它,以便有时我将两个向量传递给ndgrid并输出两个矩阵,即
[X1,X2] = ndgrid(x1,x2);
Run Code Online (Sandbox Code Playgroud)
但有时候我可能会有更多X,所以我想要
[X1,X2,X3,X4] = ndgrid(x1,x2,x3,x4)
Run Code Online (Sandbox Code Playgroud)
要将可变数量的输入传递给现有函数,请使用带扩展的单元格数组,如下所示:
x = 1:10;
y = randn(size(x));
plotArguments = {'color' 'red' 'linestyle' '-'};
plot(x, y, plotArguments{:});
Run Code Online (Sandbox Code Playgroud)
要么
plotArguments = {1:10 randn(1,10) 'color' 'red' 'linestyle' '-'};
plot(plotArguments{:});
Run Code Online (Sandbox Code Playgroud)
您可以使用相同的技巧来接收多个输出.唯一困难的部分是记住正确的符号.
numArgumentsToAccept = 2;
[results{1:numArgumentsToAccept }] = max(randn(100,1));
Run Code Online (Sandbox Code Playgroud)
使用varargin,nargin,varargout和nargout您可以轻松定义变量参数/输出功能.请参阅varargin页面的附加MATLAB文档链接.其他的链接在底部:
http://www.mathworks.com/help/matlab/ref/varargin.html
编辑:顺便说一下,不是为了自己的号角,但似乎就像我在"快速和肮脏"的评论中所建议的那样实施hehehe