Я пытаюсь сделать простой агент и класс среды в MATLAB 2014.Возможно ли иметь объект некоторого класса как свойство класса, как другой класс в MATLAB?
Я пытаюсь, чтобы объект «а» класса Агента был одним из свойств класса среды. Я инициализируюсь объект в конструкторе класса окружающей среды, но всякий раз, когда я пытаюсь доступ метода класса Agent с использованием данного объекта, я получаю предупреждение, как:.
«вызова Смешения функции вы имели в виду для ссылки свойство 'a'? "
Вот мой класс среды и класс агента. Как я могу вызвать метод класса Agent от interact_with_agent_function
, как мы называем JAVA?
classdef Environment < handle
properties (Constant = true)
V = 0.5;
T = 1;
end
properties (SetObservable= true)
A;
B;
a;
end
methods
function obj = initialize(obj, A, B)
obj.A = A;
obj.B = B;
a = Agent();
end
function act = call_agent(obj)
act = agent_function(a, obj.A, obj.B, obj.V, obj.T);
end
function action = interact_with_agent(obj)
action = obj.call_agent();
end
end
end
classdef Agent < handle
properties (SetObservable = true)
action;
end
methods
function action = agent_function(obj, A, B, v, t)
obj.action = A + v * t * ((B - A)/norm(B - A));
action = obj.action;
end
end
end
Если вы хотите обратиться к свойству-члену, вы должны быть явным и использовать 'obj.a = Agent()' – Suever