私はoptimoptions関数を使用しています。変数の各繰り返しの後に残差を保存したいと思います。今度は、次のコードの最初の行に反復を表示することを選択した場合、私はコンソールでそれらを見ることができますが、それをベクトル変数として保存することはできますか?私は2行目に残余出力を得ようとしましたが、最後の反復の結果しか得られません。ありがとうございました。matlab optimoptionsは残差を変数に保存します
options = optimoptions(@lsqnonlin,'Algorithm','Levenberg-Marquardt','Display','iter','StepTolerance',1e-4);
[params,resnorm,residual_opt,exitflag,output,lambda,jacobian] = lsqnonlin(@minDistance,params0,[],[],options);
angles = params(1:3);
R = euler2mat(angles);
T = params(4:6);
end
ここでは反復の表示です。私は3番目の列を使いたいだけです。
First-Order Norm of
Iteration Func-count Residual optimality Lambda step
0 7 5.4943e+09 3.84e+10 0.01
1 14 7.39183e+08 8.74e+09 0.001 6.32624
2 21 4.56928e+07 1.1e+09 0.0001 2.59042
3 28 2.41748e+06 1.21e+08 1e-05 2.61414
4 35 135873 1.39e+07 1e-06 1.45824
5 42 8031.22 1.65e+06 1e-07 0.743095
6 49 487.971 2e+05 1e-08 0.372708
7 56 30.0687 2.47e+04 1e-09 0.186396
8 63 1.86599 3.07e+03 1e-10 0.0931815
9 70 0.116209 382 1e-11 0.0465832
10 77 0.00724993 47.7 1e-12 0.0232892
11 84 0.000452687 5.96 1e-13 0.011644
12 91 2.82764e-05 0.744 1e-14 0.00582186
あなたが残差とはどのように過ごしたいですか? – Bentoy13
私は自分のプロットウィンドウの図にプロットしたいと思います。 – jiayi