Mevcut sürümlerde çalışan 'Syntax'ı düzenlemeden, biraz çamurlu olsa da sizi orada bulabilirim.
Aşağıdaki işlev, girişler için gerekli, isteğe bağlı ve isteğe bağlı ad-değer çiftlerini içerir. Gerekli ve isteğe bağlı girişler hakkında kullanıcı bilgilerini vermek için araç ipucu istiyorum. Varargin, hiçbir değişkene aktarılmamış olsa bile her zaman vardır ve inputParser, varargin teslim edildiğinde oldukça iyi çalışır. Bu özellikten, isteğe bağlı girdilerimi işlev çağrısında bırakarak, ancak onlarla birlikte çalışmaya başlamadan önce bunları varagin içine yığmaktan yararlanacağım.
araç ipucu myFun (frekans, gain_optional, phase_optional, ...)
function myFun(frequency, gain_optional, phase_optional, varargin)
%% Get mandatory and optional Inputs using inputParser
p = inputParser;
% mandatory inputs
argName = 'frequency';
validation = @(x) validateattributes(x, {'numeric'}, {'2d','positive'});
p.addRequired(argName, validation);
% optional inputs
% start by packaging all optional inputs into varargin. The two optional
% inputs were kept out of varargin so they will display in the tooltip
if nargin > 2
varargin = [{phase_optional} , varargin];
end
if nargin > 1
varargin = [{gain_optional} , varargin];
end
% add optional inputs into inputParser
argName = 'gainLinear';
default = [];
validation = @(x) validateattributes(x, {'numeric'}, {'2d','positive'});
p.addOptional(argName, default, validation);
argName = 'phaseDeg';
default = [];
validation = @(x) validateattributes(x, {'numeric'}, {'2d','positive'});
p.addOptional(argName, default, validation);
% name-value pairs
argName = 'model';
default = [];
validation = @(x) validateattributes(x, {'numeric'}, {'vector','positive'});
p.addParameter(argName, default, validation);
argName = 'order';
default = [];
validation = @(x) validateattributes(x, {'numeric'}, {'scalar','integer','>',0,'<',3});
p.addParameter(argName, default, validation);
% pull out all passed data with the inputParser and stash into input struct
p.parse(frequency, varargin{:});
input = p.Results
ben sorunuzun tarafından karıştı gösterecektir. Onun zaten var. Bu, arama yolunuzdaki herhangi bir m-dosyası için çalışır. –
Kesinlikle haklısınız, sorumluluğu açıklığa kavuşturdum. –
Son zamanlarda MATLAB editöründe bir fonksiyon için araç ipucunun Ctrl + F1 tarafından çağrılabileceğini keşfettim. Güzel! – yuk