在matlab中使用遗传算法时如何在每次迭代时显示参数值
How to display parameter values at every iteration while using Genetic algorithm in matlab
我正在使用 GA 使用全局优化工具箱求解 6 个参数。
有没有办法在GA的每次迭代中显示参数值。我可以使用 display 或 iter 但它不一定显示参数值。
谢谢
你试过使用函数fprintf吗?
例如,如果要将向量 x 的第一个元素(浮点数)打印到屏幕:
fprintf(1,'%f\n', x(1))
如果在 formatSpec 下向下滚动一点,您可以在 fprintf 的文档中看到如何格式化数字和字符串。
您可以使用 plot functions。
您可以使用其中一种预定义的绘图函数:
options = gaoptimset('PlotFcns',@gaplotbestf);
x= ga(@f,6,[],[],[],[],[],[],[],options)
或者您可以自己编写。例如:
function gademo
options= gaoptimset('PlotFcns',@myplot,'PopulationSize',10);
x= ga(@f,6,[],[],[],[],[],[],[],options)
function y= f(x) % the fitness function
y= norm(x);
end
% simple plot function
function state= myplot(options,state,flag)
fprintf('generation number: %d\n',state.Generation);
fprintf('population:\n');
disp(state.Population);
end
end
我正在使用 GA 使用全局优化工具箱求解 6 个参数。
有没有办法在GA的每次迭代中显示参数值。我可以使用 display 或 iter 但它不一定显示参数值。
谢谢
你试过使用函数fprintf吗?
例如,如果要将向量 x 的第一个元素(浮点数)打印到屏幕:
fprintf(1,'%f\n', x(1))
如果在 formatSpec 下向下滚动一点,您可以在 fprintf 的文档中看到如何格式化数字和字符串。
您可以使用 plot functions。 您可以使用其中一种预定义的绘图函数:
options = gaoptimset('PlotFcns',@gaplotbestf);
x= ga(@f,6,[],[],[],[],[],[],[],options)
或者您可以自己编写。例如:
function gademo
options= gaoptimset('PlotFcns',@myplot,'PopulationSize',10);
x= ga(@f,6,[],[],[],[],[],[],[],options)
function y= f(x) % the fitness function
y= norm(x);
end
% simple plot function
function state= myplot(options,state,flag)
fprintf('generation number: %d\n',state.Generation);
fprintf('population:\n');
disp(state.Population);
end
end