Я пытаюсь реализовать sequentialfs для выбора функции. Я видел этот пост: Последовательный выбор функции Matlab
Пытался следовать примеру, приведенному в качестве решения для реализации.
My TrainVec - это матрица размером 268 x1475, тогда как TestVec - 116x1475, TestLabel - 116 x 1, TestLabel - 268 x 1.
код, который я реализовал, это
f = @(TrainVec,TrainLabel,TestVec,TestLabel) sum(TestLabel ~= predict_label);
fs = sequentialfs(f,Vec,Label);
Я получаю ошибку:
??? Error using ==> crossval>evalFun at 505
The function
'@(TrainVec,TrainLabel,TestVec,TestLabel)sum(TestLabel~=predict_label)'
generated the following error:
Matrix dimensions must agree.
Error in ==> crossval>getFuncVal at 524
funResult = evalFun(funorStr,arg(:));
Error in ==> crossval at 363
funResult = getFuncVal(1, nData, cvp, data, funorStr, []);
Error in ==> sequentialfs>callfun at 495
funResult = crossval(fun,x,other_data{:},...
Я проверил все свои матрицы и убедился, что они имеют одинаковые размеры. Не уверен, что не так. Нужно некоторое руководство.
Ошибка в ==> sequentialfs на 357
crit (k) = callfun (веселье, x, другие_данные, cv, mcreps);