【发布时间】:2019-01-08 06:56:01
【问题描述】:
我试图了解 MATLAB 中位置参数的用法,我指的是 this 页面。
假设我有一个定义如下的 MATLAB 函数:
function printPhoto(filename,varargin)
p = inputParser;
defaultFinish = 'glossy';
validFinishes = {'glossy','matte', 'colorful'};
checkFinish = @(x) any(validatestring(x,validFinishes));
defaultColor = 'RGB';
validColors = {'RGB','CMYK','colorful'};
checkColor = @(x) any(validatestring(x,validColors));
defaultWidth = 6;
defaultHeight = 4;
addRequired(p,'filename',@ischar);
addOptional(p,'finish',defaultFinish,checkFinish);
addOptional(p,'color',defaultColor,checkColor);
addParameter(p,'width',defaultWidth,@isnumeric);
addParameter(p,'height',defaultHeight,@isnumeric);
parse(p,filename,varargin{:});
end
当我按如下方式调用上述函数时:printphoto('myFile.img', 'colorful'),是否可以使第二个参数对应于函数定义中的第二个可选位置参数,即color='colorful' 而不是finish='colorful'?
【问题讨论】:
标签: matlab function arguments parameter-passing