Используйте метод set MATLAB

Я хочу изменить значение свойства в классе Matlab из функции в том же классе Matlab. Т.е. одна из функций в классе генерирует значение, которое я хочу присвоить свойству для этого класса.

Это свойства класса:

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 (т.е. правильно ли она написана сейчас)? и как должен выглядеть синтаксис для назначения нового значения свойству.

Заранее спасибо за помощь!

1 ответ

Вы можете просто написать

obj.detTP = value;

или, если бы вы использовали hgsetget вместо handle как базовый класс, вы могли бы сделать

set(obj, 'detTP', value);

Ваш set-метод выглядит хорошо с первого взгляда.

Другие вопросы по тегам