2

次の関数では、オプションの入力パラメーターに 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

助けてくれてどうもありがとう!

4

1 に答える 1