How to save persistent variables after the last call to the function?
2 次查看(过去 30 天)
显示 更早的评论
I have a function with some persistent variables, when I am writing the persistent variables (using save command) during each call to the function than it is working fine but when I am using if else logic to write the variables only at the last call to the function then Matlab storing the variables as empty. I have attached the required code segment.
function [y]=fitness5(x)
persistent stor_chrom;
persistent store_fitness;
persistent store_counter;
persistent Population1;
flag=0;
if (isempty(Population1))
load('C:\Users\PC01\Documents\MATLAB\Population2.mat');
Population1 =Population2;
end
if (isempty(store_counter))
store_counter = 0;
end
if (isempty(stor_chrom))
stor_chrom=[];
end
if (isempty(store_fitness))
store_fitness = [];
end
if x==-1
save stor_chrom1.mat stor_chrom store_fitness;
else
%some code......
% update persistent variables
store_counter=store_counter+1;
stor_chrom(store_counter,:)=x;
store_fitness(store_counter,1)=chor_no;
store_fitness(store_counter,2)=fit2;
store_fitness(store_counter,3)=final_gates;
y=fit2;
end
1 个评论
回答(1 个)
Alexandra Harkai
2017-2-27
Without using the save command the persistent variables could be declared as persistent when calling from a function, as explained in the documentation .
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Argument Definitions 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!