Undefined function or variable error even though function is saved
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Harvey Rael
am 18 Mai 2018
Beantwortet: Harvey Rael
am 18 Mai 2018
Keep getting the message "undefined function or variable"..I'm trying to create this function to pass to a genetic algorithm to optimise for three variables (k1,k2,k3) but even when I test it I get an error. It saves as a .m file though. What's going wrong?
function y = newFitness(k)
% Define constants
AU = astroConstants(2);
mu = astroConstants(4);
% Define start and finish parameters for the exponential sinusoid.
r1 = AU; % Initial radius
psi = pi/2; % Final polar angle of Mars/finish transfer
phi = pi/2;
theta_dot = sqrt( mu/(((r1/exp(k(1)*sin(phi)))*exp((k(1)*sin(k(2)*(psi + 2*pi*k(3))+phi))))^3) * 1/(tan(atan(k(1)*k(2)*cos(k(2)*(psi + 2*pi*k(3))+phi)))^2 + k(1)*k(2)^2*sin(k(2)*(psi + 2*pi*k(3))+phi) +1) );
y = theta_dot - 94608000;
Edit: Following on from one of the suggestions below, there arises the following information : The function can be found apparently.
which newFitness
Y:\MATLAB\newFitness.m
So here is the genetic algorithm code that I am trying to pass it on to. I'm not sure why that is important, because before I even touch the GA code, I try and test my function by typing :
newFitness([1 2 3])
Which still gives me an error message of "Undefined function or variable 'newFitness'". But here's the GA code anyways.
clc;clear;
objective_function = @newFitness;
nvars = 3;
[k,fval]=ga(objective_function,nvars);
6 Kommentare
Geoff Hayes
am 18 Mai 2018
Harvey - is the newFitness function in the MATLAB search path? In the command window, type
which newFitness
to see if the function can be found. If not, then add it to the search path. If it can be found, then there might be something wrong with the code that is trying to pass this function to the GA...so please copy and paste that code (which is throwing the error) to your question.
Akzeptierte Antwort
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Genetic Algorithm finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!