sfitオブジェクト​をテキストファイルに​書き込むにはどうすれ​ばいいですか?

4 次查看(过去 30 天)
Shuichi Nagamatsu
曲線(曲面)近似 [f, gof]=fit([x, y], z, ft, fo) の結果である
f(sfitオブジェクト)を指定したテキストファイルに書き込むにはどうすればいいでしょうか?

采纳的回答

Atsushi Ueno
Atsushi Ueno 2023-4-5
  1. (面倒) sfit オブジェクトの要素にアクセスしてテキストファイルに書き出す ※ sfit オブジェクトのアクセス方法
  2. (簡単) diary 関数でsfit オブジェクトの表示内容をテキストファイルに保存する
load franke
sf = fit([x, y],z,'poly23') % sfit オブジェクトのサンプルデータ
Linear model Poly23: sf(x,y) = p00 + p10*x + p01*y + p20*x^2 + p11*x*y + p02*y^2 + p21*x^2*y + p12*x*y^2 + p03*y^3 Coefficients (with 95% confidence bounds): p00 = 1.118 (0.9149, 1.321) p10 = -0.0002941 (-0.000502, -8.623e-05) p01 = 1.533 (0.7032, 2.364) p20 = -1.966e-08 (-7.084e-08, 3.152e-08) p11 = 0.0003427 (-0.0001009, 0.0007863) p02 = -6.951 (-8.421, -5.481) p21 = 9.563e-08 (6.276e-09, 1.85e-07) p12 = -0.0004401 (-0.0007082, -0.0001721) p03 = 4.999 (4.082, 5.917)
%% sfit オブジェクトの要素にアクセスしてテキストファイルに書き出す
fid = fopen('mysfit.txt','w');
fprintf(fid,"%s\n",formula(sf));
cellfun(@(x) fprintf(fid,'%s = %8.3e\n',x,sf.(x)), coeffnames(sf));
fclose(fid);
type mysfit.txt % 上記と同様に全部書き出すのは面倒!
p00 + p10*x + p01*y + p20*x^2 + p11*x*y + p02*y^2 + p21*x^2*y + p12*x*y^2 + p03*y^3 p00 = 1.118e+00 p10 = -2.941e-04 p01 = 1.533e+00 p20 = -1.966e-08 p11 = 3.427e-04 p02 = -6.951e+00 p21 = 9.563e-08 p12 = -4.401e-04 p03 = 4.999e+00
%% コマンドラインの文字列をファイルに保存する
diary myDiary.txt
sf
Linear model Poly23: sf(x,y) = p00 + p10*x + p01*y + p20*x^2 + p11*x*y + p02*y^2 + p21*x^2*y + p12*x*y^2 + p03*y^3 Coefficients (with 95% confidence bounds): p00 = 1.118 (0.9149, 1.321) p10 = -0.0002941 (-0.000502, -8.623e-05) p01 = 1.533 (0.7032, 2.364) p20 = -1.966e-08 (-7.084e-08, 3.152e-08) p11 = 0.0003427 (-0.0001009, 0.0007863) p02 = -6.951 (-8.421, -5.481) p21 = 9.563e-08 (6.276e-09, 1.85e-07) p12 = -0.0004401 (-0.0007082, -0.0001721) p03 = 4.999 (4.082, 5.917)
diary off
type myDiary.txt % ここでは表示出来ないが、上記表示内容がそのままテキスト形式で保存される
  3 个评论
Atsushi Ueno
Atsushi Ueno 2023-4-6
MATLAB Answer で動くMATLABは、UI系コマンドが動かない等の制約がある為です。
ご自身でお使いのMATLAB(Desktop版またはOnline版)であればdiary 関数が正常に機能するはずです。
実験してみたところ下記の結果になりました。
  • MATLAB Answer:diary 関数が正常に機能しない(空のファイルが出力される)
  • MATLAB Online :diary 関数が正常に機能する
  • MATLAB Desktop:diary 関数が正常に機能する
Shuichi Nagamatsu
ライブエディタでは出力されませんでしたがエディタで実行すると出力することが出来ました。
ありがとうございました。

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 起動と終了 的更多信息

产品


版本

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!