I've just tried this code on Matlab Online too. It's the similar error. Somehow, the code just works on Windows. Not on Apple Silicon or Matlab Online...
Code runs well on Windows but gets errors on Apple Silicon Mac
6 次查看(过去 30 天)
显示 更早的评论
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 个)
Steven Lord
2024-5-13
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!