Borrar filtros
Borrar filtros

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

2 visualizaciones (últimos 30 días)
Shuichi Nagamatsu
Shuichi Nagamatsu el 5 de Abr. de 2023
Comentada: Shuichi Nagamatsu el 7 de Abr. de 2023
曲線(曲面)近似 [f, gof]=fit([x, y], z, ft, fo) の結果である
f(sfitオブジェクト)を指定したテキストファイルに書き込むにはどうすればいいでしょうか?

Respuesta aceptada

Atsushi Ueno
Atsushi Ueno el 5 de Abr. de 2023
  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 comentarios
Atsushi Ueno
Atsushi Ueno el 6 de Abr. de 2023
MATLAB Answer で動くMATLABは、UI系コマンドが動かない等の制約がある為です。
ご自身でお使いのMATLAB(Desktop版またはOnline版)であればdiary 関数が正常に機能するはずです。
実験してみたところ下記の結果になりました。
  • MATLAB Answer:diary 関数が正常に機能しない(空のファイルが出力される)
  • MATLAB Online :diary 関数が正常に機能する
  • MATLAB Desktop:diary 関数が正常に機能する
Shuichi Nagamatsu
Shuichi Nagamatsu el 7 de Abr. de 2023
ライブエディタでは出力されませんでしたがエディタで実行すると出力することが出来ました。
ありがとうございました。

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre 近似の後処理 en Help Center y File Exchange.

Productos


Versión

R2019b

Community Treasure Hunt

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

Start Hunting!