Изменение свойств класса с помощью его методов

Я хотел бы изменить свойства моего класса с помощью метода, определенного для этого класса:

classdef triangle<handle

properties
    a
    h         
end

methods

    function obj = triangle()
        obj;
    end

    function obj = setProps(obj, a, h)
        obj.a = a;
        obj.a = h;
    end

end

end

Вызов:

t = triangle();
t.setProps(a, h);

Это не работает вообще - я получаю эту ошибку:

 The class 'handle' is not a super-class of class 'triangle', as required to invoke a super-class constructor or method.

 Error in triangle (line 13)
    function obj = triangle()

Я использую Matlab 2012a. Мой код основан на этом примере: ссылка

1 ответ

Решение

Пытаться clear перед этим Возможно, вы перезаписали handle с чем-то. В противном случае это работает для меня на Matlab 2012a:

clear;

a = 'hello';
h = 1;

t = triangle();
t.setProps(a, h);
Другие вопросы по тегам