【发布时间】:2017-05-23 07:37:33
【问题描述】:
在显示的代码中,我想在一个变量中每次迭代保存一个参数 (fval),但不知道该怎么做。有人可以建议吗?
clear;
close all;
clc;
for i = 0 : 100
ii = i * 0.01;
options = optimset('Display','iter-detailed', ...
'Algorithm','interior point', ...
'Diagnostics','on');
options.TolCon = 0;
options.TolFun = 0;
[X,faval,exitfag,output,lambda,grad,hessian]=fmincon(@myfun9,0,[],[],[],[],ii,1,@mycon,options);
end;
【问题讨论】:
-
是否每次迭代都将返回值
fval保存在单独的变量中?所以循环后你会有 100 个变量? -
如何使用数组,例如在循环之前定义
fval = [];,然后在每次迭代结束时执行fval = [fval; faval];以存储新值。请注意,这仅在faval的所有迭代具有相同尺寸时才有效。 -
@hmofrad 不建议这样做。阅读原因:mathworks.com/help/matlab/matlab_prog/preallocating-arrays.html
-
@Sardar_Usama 我明白你的意思了!
-
请注意,您可以将所有
options...设置排除在循环之外
标签: matlab variables for-loop save iteration