набор данных позволяет нам:
x = rand(10, 1);
y = rand(10, 1);
d = dataset(x, y);
d будет иметь 2 переменные с именами 'x' и 'y', а содержимое переменных x и y - имена переменных, полученные из рабочей области.Вызов набора данных () выше эквивалентен:
d = dataset({'x', x}, {'y', y});
, когда указаны имена.
Теперь, если у меня есть подкласс набора данных:
classdef mydataset < dataset
properties
end
methods
function spec = mydataset(varargin)
spec = spec@dataset(varargin{:});
% Add some more things to this subclass because that's the reason I need a subclass
end
end
end
Проблема в том, что если я позвоню:
d = mydataset(x);
d будет иметь переменную x, но имя будет просто 'var1'.Имя рабочей области 'x' не распознано.Если я не позвоню:
d = mydataset({'x', x});
Я не получу тот же эффект.
Есть решение?
Обратите внимание, что я не хочу потерять другие возможности анализа аргументов набора данных ().Он может обрабатывать действительно сложные аргументы, и я хочу сохранить это.
http://www.mathworks.com/help/toolbox/stats/dataset.html
A = dataset(varspec,'ParamName',Value)
A = dataset('File',filename,'ParamName',Value)
A = dataset('XLSFile',filename,'ParamName',Value)
A = dataset('XPTFile',xptfilename,'ParamName',Value)
Примером этого вопроса с mydataset (x) является простая и часто встречающаяся ситуация, когда mydataset () не может передать данные в набор данных () иполучить те же результаты.Таким образом, это важная ситуация.Но делать это и терять другие возможности dataset () не стоит.