Code runs well on Windows but gets errors on Apple Silicon Mac
Show older comments
paths;
algorithms = {'RSA'};
dimension = 20; % (2, 10, 20)
maxFE = 1000; % 1000000
cec2022 = str2func('cec22_test_func');
globalMins = {300, 400, 600, 800, 900, 1800, 2000, 2200, 2300, 2400, 2600, 2700};
experimentNumber = 1; run = 21;
filename = 'result-';
functionsNumber = 12;
global count;
solution = zeros(experimentNumber, functionsNumber, run);
solutionR = zeros(functionsNumber * experimentNumber, run);
for ii = 1 : length(algorithms)
disp(algorithms(ii));
algorithm = str2func(char(algorithms(ii)));
for i = 1 : functionsNumber
disp(i);
for j = 1 : run
[~, bestFitness, ~] = algorithm(cec2022, dimension, maxFE, i);
disp(count);
count = 0;
solution(1, i, j) = bestFitness - globalMins{i};
for k = 1 : experimentNumber
solutionR(k + experimentNumber * (i - 1), j) = solution(k, i, j);
end
end
end
xlswrite(strcat(filename, func2str(algorithm), '-d=', num2str(dimension), '.xlsx'), solutionR, 1);
eD = strcat(func2str(algorithm), '-Bitti :)');
disp(eD);
end
I've tried this code with my friends Winodws Laptop. We both have just dowloaded Matlab so there is no configuration file for both sides. Error is:
Unrecognized function or variable 'cec22_test_func'.
Error in testFunction (line 29)
fitness = feval(fhd, x, fNumber);
Error in RSA (line 25)
Ffun(1,i)=testFunction(X(i,:)', fhd, fNumber);
Error in main (line 21)
[~, bestFitness, ~] = algorithm(cec2022, dimension, maxFE, i);
My friend runs this codes with no issue. I literally have no idea what's happening...
1 Comment
Batug
on 13 May 2024
Moved: Steven Lord
on 13 May 2024
Accepted Answer
More Answers (1)
which cec22_test_func
There is no such function in MATLAB. This is confirmed by a search of the MathWorks website, which only finds this Answers thread.
What you've written likely works on your friend's machine because they've created that function or downloaded it from somewhere.
A quick Google search found a GitHub repo with a function by that name, but that function is implemented as a MEX-file (which is platform dependent) and the repo only has versions of the MEX-file for Microsoft Windows (the .mexw64 extension.) You could try compiling the MEX-file yourself on your Mac machine.
Categories
Find more on JSON Format in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!