Я пытаюсь понять использование позиционных аргументов в MATLAB, и я имел в виду эту страницу.
Допустим, у меня есть функция 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'
?