1

同じ matlab クラス内の関数から Matlab クラスのプロパティの値を変更したいと考えています。つまり、クラスの関数の 1 つが、そのクラスのプロパティに割り当てたい値を生成しています。

これはクラスのプロパティです:

classdef myclass < handle

    properties (SetAccess = public)

    notional;
    T;
    u;
    nbrAnnualPayments;
    sigma_u;
    sigma_s;
    s_i;
    N2;
    cash_flow;
    paymentDates;
    detTP;
    volTP;

……で、これが設定方法です。

function set.detTP(obj,value)
    if ~(value > 0)
        error('Property value must be positive')
    else
        obj.detTP = value;
    end
end

今、私は次のようなものを書きたいです:

obj.set.detTP(obj, value);

別の関数から detTP プロパティの値を更新します。

どうすればいいですか?set 関数はどのように記述する必要がありますか (つまり、現在正しく記述されていますか)? また、新しい値をプロパティに割り当てるための構文はどのようになりますか。

よろしくお願いします。

4

1 に答える 1

1

あなたは単に書くことができます

obj.detTP = value;

または、hgsetget代わりにhandle基本クラスとして使用する場合は、次のことができます

set(obj, 'detTP', value);

あなたの set-method は一見問題ないように見えます。

于 2013-11-18T12:46:10.810 に答える