次の関数では、オプションの入力パラメーターに Pt を指定しようとしました。Pt が指定されていない場合は、他のオプションのパラメーターを計算する必要があります (その部分は機能します)。しかし、私がそれを指定すると:
Alg(b,'circle','Pt',ones(150,1))
次のエラーが表示されます。
「Pt」は認識されたパラメーターではありません。有効な名前と値のペアの引数のリストについては、この関数のドキュメントを参照してください。
関数のコード:
function [ v ] = Alg( b,shape,varargin )
%%Parse inputs
p = inputParser;
addRequired(p,'b',@isnumeric);
expectedShapes = {'square','circle'};
addRequired(p,'shape',@(x) any(validatestring(x,expectedShapes)));
defaultIt = 42;
addParameter(p,'It',defaultIter,@isnumeric);
addParameter(p,'t',@isnumeric);
addParameter(p,'v',@isnumeric);
parse(p,b,shape,varargin{:})
b = p.Results.b;
shape = p.Results.shape;
It = p.Results.It;
t = p.Results.t;
v = p.Results.v;
parse(p,b,shape,varargin{:})
defaultPoint = Alg_sq(b,Pt,It);
defaultPoint = Sub_Alg(defaultPoint,shape,t,v);
addParameter(p,'Pt',defaultPoint,@isnumeric);
Pt = p.Results.Pt;
%%Shape
switch shape
case 'circle'
v = Alg_crcl( b,Pt,It );
case 'square'
v = Alg_sq( b,Pt,It );
end
end
助けてくれてどうもありがとう!