Я пытаюсь расширить класс MATLAB container.Map, создав его подкласс и добавив дополнительный метод с 0 выходными данными, но при выполнении метода я сталкиваюсь с ошибкой «слишком много выходных аргументов». Это не относится к новой реализации метода — любой дополнительный метод, который расширяет container.Map() с 0 выходными данными, будет генерировать эту ошибку.
В частности, ошибка возникает при выполнении,
obj = Containers();
obj.testfun();
Для следующего определения класса
classdef Containers < handle & containers.Map
methods
% Test function to display keys.
function testfun(obj)
obj.keys(); % dumby thing to execute with incoming object.
disp('it works!');
end
end
end
Однако, если мы немного изменим его, чтобы вывести хотя бы один аргумент,
classdef Containers < handle & containers.Map
methods
% Test function to display keys.
function dumby = testfun(obj)
obj.keys();
disp('it works!')
dumby = 1;
end
end
end
Он будет выполняться правильно. Ошибка появляется именно при создании подкласса container.Map. Если это имеет значение, я использую MATLAB R2014b. Любые предложения относительно того, как решить эту проблему?
subsref
или чем-то подобным. Посколькуcontainers.Map
является закрытым исходным кодом, я бы связался с поддержкой mathworks по этому поводу. - person Daniel   schedule 22.03.2015