Error: Undefined function <func_name> for input arguments of type 'double'.
Afficher commentaires plus anciens
Below is a small part of the big code, Where I'm getting an error at line 3. Undefined function 'f1' for input arguments of type 'double'.
Below I've changed the code little bit as compared to the source to make it more readable.
function fit = dummy(x)
fhd = str2func('f1');
fit = feval(fhd, x); % Error Here
%------------------------------------------------------------------------------
% Elliptic Function
%------------------------------------------------------------------------------
function fit = elliptic(x)
%TODO Do we need symmetry breaking?
%TODO Implement to support a matrix as input.
[D ps] = size(x);
condition = 1e+6;
coefficients = condition .^ linspace(0, 1, D);
fit = coefficients * T_irreg(x).^2;
end
function fit = f1(x)
persistent xopt lb ub
[D ps] = size(x);
load 'datafiles/f01.mat';
idx = checkBounds(x, lb, ub);
x = x-repmat(xopt, 1, ps);
fit = elliptic(x);
fit(idx) = NaN;
if ~isempty(idx)
warning "Some of the solutions are violating boundary constraints.";
end
end
end
Please help me to sort out the problem. For the complete code checkout "benchmark_func.m" in the "matlab.zip" attached.
Réponse acceptée
Plus de réponses (1)
Massimo Zanetti
le 10 Fév 2017
Modifié(e) : Massimo Zanetti
le 10 Fév 2017
Refer to your 2nd line of code
fhd = str2func('f1');
The string 'f1' evaluates to nothing in Matlab, therefore the command
fit = feval(fhd, x);
Catégories
En savoir plus sur Shifting and Sorting Matrices dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!