• 締切済み

MATLABでカーブフィットしたデータをテキスト形式で保存する方法を教えてください

下記は、周波数応答関数を入力し、 カーブフィットを行うプログラムです。 このプログラムを実行し、カーブフィットをできるのは いいのですが、どうすればそのデータをテキスト形式で保存し, エクセルなどで実行できるのかがわかりません。 どうか何卒ご教授お願い致します。 ---------------------- clear variables global;comgui('close all') fm='wagawara_ryou10_'; n1=101; n2=142; n=0; for i=n1:n2 fnm=strcat(fm,int2str(i),'_h.txt') [IIw,Mag,Phi,Q,Q]=textread(fnm,'%f %f %f %f %f','headerlines',3); n=n+1; IIxf(:,n)=complex(Mag.*cos(Phi*pi/180),Mag.*sin(Phi*pi/180)); end %---初期固有振動数データと減衰比データの読み込み.2005.9.13--- fn='wagawara_ryou10_mif_pk_dm.txt' [peak,zeta]=textread(fn,'%f %f','headerlines',2); pkze=[peak,zeta]; %---処理開始--- iiplot %伝達関数のプロット XF(5).po=pkze %初期固有振動数と減衰比を代入。 idcom('e 15 371'); %idcom('e i w') i:帯域幅,w:中心周波数 idcom('est'); idcom('eup .05 .002 -10'); %idcom('eup dstep fstep num i') out=id_rm(XF(5),[1 1 1 1]); XF(3)=res2xf(out,IIw); iicom('IIxhOn'); [som2,ga2,pbs2,cps2]=res2nor(IIres,IIpo,IDopt); ※注意 'wagawara_ryou10_'←入力データ strcat←組み込み関数 textread←組み込み関数 complex←組み込み関数 'wagawara_ryou10_mif_pk_dm.txt'←入力データ textread←組み込み関数 idcom←組み込み関数 id_rm←組み込み関数 res2xf←組み込み関数 iicom←組み込み関数 res2nor←組み込み関数 ---------------------- どうぞよろしくお願いします。

みんなの回答

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.2
yasuyasu19
質問者

お礼

回答ありがとうございます!! 「save」を使って、測定データとシミュレーションデータ(カーブフィットしたデータ)を得るには、どのようにプログラムを組めばいいのでしょうか。 初歩的な事ばかり質問をして申し訳ございません。 どうかよろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • m0r1_2006
  • ベストアンサー率36% (169/464)
回答No.1

何が保存したい変数か分かりませんが,変数 X と Y を tab 区切りで保存したければ, X = 1:5 Y = sin(X) save foo.txt X Y -ascii -tabs で良いと思います.

yasuyasu19
質問者

お礼

回答ありがとうございます!! 「save」を使って、測定データとシミュレーションデータ(カーブフィットしたデータ)を得るには、どのようにプログラムを組めばいいのでしょうか。 初歩的な事ばかり質問をして申し訳ございません。 どうかよろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • MATLABでカーブフィットしたデータを、関数「xlswrite」「save」を用いて、xls形式・txt形式で保存する方法を教えてください

    下記は、周波数応答関数を入力し、 カーブフィットを行うプログラムです。 カーブフィットのデータをエクセル形式、テキスト形式で 保存をする場合、関数[save]または[xlswrite]を使用し, どのように書けばいいのでしょうか。 どうか何卒ご教授お願い致します。 ---------------------- clear variables global;comgui('close all') fm='wagawara_ryou10_'; n1=101; n2=142; n=0; for i=n1:n2 fnm=strcat(fm,int2str(i),'_h.txt') [IIw,Mag,Phi,Q,Q]=textread(fnm,'%f %f %f %f %f','headerlines',3); n=n+1; IIxf(:,n)=complex(Mag.*cos(Phi*pi/180),Mag.*sin(Phi*pi/180)); end %---初期固有振動数データと減衰比データの読み込み.2005.9.13--- fn='wagawara_ryou10_mif_pk_dm.txt' [peak,zeta]=textread(fn,'%f %f','headerlines',2); pkze=[peak,zeta]; %---処理開始--- iiplot %伝達関数のプロット XF(5).po=pkze %初期固有振動数と減衰比を代入。 idcom('e 15 371'); %idcom('e i w') i:帯域幅,w:中心周波数 idcom('est'); idcom('eup .05 .002 -10'); %idcom('eup dstep fstep num i') out=id_rm(XF(5),[1 1 1 1]); XF(3)=res2xf(out,IIw); iicom('IIxhOn'); [som2,ga2,pbs2,cps2]=res2nor(IIres,IIpo,IDopt); ※注意 'wagawara_ryou10_'←入力データ strcat←組み込み関数 textread←組み込み関数 complex←組み込み関数 'wagawara_ryou10_mif_pk_dm.txt'←入力データ textread←組み込み関数 idcom←組み込み関数 id_rm←組み込み関数 res2xf←組み込み関数 iicom←組み込み関数 res2nor←組み込み関数 ---------------------- どうぞよろしくお願いします。

  • カーブフィットを行うプログラムについて

    カーブフィットを行うプログラムについて質問があります。 下記は、周波数応答関数を入力し、 カーブフィットを行うプログラムですが、 プログラムの下4行の意味が全く分かりません。 (下4行とは、■マークが先頭に書いてあるものです) どうか何卒ご教授お願い致します。 わかりにくい質問の仕方をしてしまい、申し訳ないです。 ---------------------- clear variables global;comgui('close all') fm='wagawara_ryou10_'; n1=101; n2=142; n=0; for i=n1:n2 fnm=strcat(fm,int2str(i),'_h.txt') [IIw,Mag,Phi,Q,Q]=textread(fnm,'%f %f %f %f %f','headerlines',3); n=n+1; IIxf(:,n)=complex(Mag.*cos(Phi*pi/180),Mag.*sin(Phi*pi/180)); end %---初期固有振動数データと減衰比データの読み込み.2005.9.13--- fn='wagawara_ryou10_mif_pk_dm.txt' [peak,zeta]=textread(fn,'%f %f','headerlines',2); pkze=[peak,zeta]; %---処理開始--- iiplot %伝達関数のプロット XF(5).po=pkze %初期固有振動数と減衰比を代入。 idcom('e 15 371'); %idcom('e i w') i:帯域幅,w:中心周波数 idcom('est'); idcom('eup .05 .002 -10'); %idcom('eup dstep fstep num i') ■out=id_rm(XF(5),[1 1 1 1]); ■XF(3)=res2xf(out,IIw); ■iicom('IIxhOn'); ■[som2,ga2,pbs2,cps2]=res2nor(IIres,IIpo,IDopt); ---------------------- よろしくお願い致します。 失礼します。

  • 周波数応答関数の計算

    打撃実験を行って解析するのですが下記のプログラムが分かりません。 [IIw,Mag,Phi,Q,Q]=textread(fnm,'%f %f %f %f %f','headerlines',3); IIxf(:,n)=complex(Mag.*cos(Phi*pi/180),Mag.*sin(Phi*pi/180)); 読み込んだファイルの内容が Np Nc / Freq Hm Ha Coh XPwr 6401 5 0 11.8941 0 0.938239 1.78076E-006 1 27.7519 130.402 0.915975 2.26936E-008 2 3.95322 -38.8943 0.973454 1.64854E-008 . . 一列目が周波数と思います。2列と3列が何か分かりません。 また、IIxfは周波数応答関数だと思うのですがどの公式を用いているのでしょうか?

  • テキストへの保存方法

    N個(毎回変動します)のテキストファイルがあります。 その中に360行2列のデータがあります。 このN個のテキストを1つのテキストファイルにまとめて、 360行(2×N)列のデータにして保存したいです。 '------------------保存するプログラム------------------------- SaveName = Dir2.Path & "\" & Nam & ".txt" Open SaveName For Output As #1 For i Write #1, V1(1,i),VRMS(1,i),V1(2,i)・・・V1(N,i),VRMS(N,i)  next i Close #1 '-------------------------------------- 上のプログラムの4行目 Write #1, V1(1,i),VRMS(1,i),V1(2,i)・・・V1(N,i),VRMS(N,i)  ですが毎回変動するため何列になるかわかりません。 行の場合でしたらFor NEXTを使えばよいと思うのですが、 横に増えてい場合どのようにすればよいのでしょうか? VB6で作成しています。 アドバイスよろしくおねがいします。

  • エクセルのデータを大量のテキストファイルに書き込みたい。

    エクセルの縦のセルのデータ(下のCells( 4 * j + i, 4))を繰り返しで、400個のテキストファイルに書き込みたいのですが、 下の""内のjは繰り返しせずに、j.txtとなって入力されてしまいます。なにかいい方法がありませんでしょうか。 ご協力お願いします。(ちなみにvbaは初心者です。) Private Sub CommandButton2_Click() Dim n As Long n = FreeFile Dim j As Integer For j = 0 To 399 For i = 1 To 4 a = Cells( 4 * j + i, 4) f2 = ActiveWorkbook.Path & "\j.txt" Open f2 For Append As #n Print #n, a Close #n Next i Next j End Sub 例. 1 2 3 4 5 6 7 8 9 10 12 13 1,2,3,4→1.txt 5,6,7,8→2.txt 9,10,11,12→3.txt

  • 保存データの¥nを<br />に変換

    http://okwave.jp/qa/q7387963.html 以前こちらの質問をさせていただきまして、 htmlspecialcharsはHTMLとしてクライアントに返すときに使用することがわかりました。 しかし、ここで問題が起こりました。 フォームから入力されたデータをdata.txtに一行一データとして保存していくプログラムなのですが、 以前のやり方は、 保存時にhtmlspecialchars変換してしまう方法で以下のようにやっていました。 $honbun=htmlspecialchars($_POST["honbun"],ENT_QUOTES); $honbun=str_replace("\n","<br />",$honbun); $file=fopen("data.txt",a"); fputs($file,$honbun."\n"); //行末に\nをつけて保存 fclose($line); こうすることで、data.txtには --------------------------------------------- こんにちは、山田です。<br />元気ですか?\n こんばんは、鈴木です。<br />元気です。\n --------------------------------------------- このように行の最後以外は改行を<br />にできていました。 しかし、最初に書いた通り、 htmlspecialcharsは保存時ではなく、出力時に使う。 ということでしたのでこのやり方は正しくないのでこんな感じに書き直してみました。 $honbun=$_POST["honbun"]; //まだこの時点ではhtmlspecialcharsしない $honbun=str_replace("\n","<br />",$honbun);; $file=fopen("data.txt",a"); fputs($file,$honbun."\n"); //行末に\nをつけて保存 fclose($line); そして、htmlとして出力時に $f=file("data.txt"); foreach($f as $key=>$value){ print(htmlspecialchars($value)); //ここでhtmlspecialcharsするよう変更 print("<br />");   } こうやってみました。 が、しかし、ここで問題が発生。 html出力結果が、 こんにちは、山田です。&lt;br /&gt;元気ですか? こんばんは、鈴木です。&lt;br /&gt;元気です。 このように、<br />で改行して表示したいにもかかわらず、 <br />を文字列として表示してしまいました。 いったいどうやったら解決できるでしょうか? やはり、以前のやりかたに戻すべきでしょうか? わかる方、ご回答よろしくお願い致します。

    • ベストアンサー
    • PHP
  • fortran90

    fortran90 現在 fortran90 で計算プログラムを作っております。 プログラムはかけたのですが、実行画面にエラーが出ます。 解決方法が分かりません。どなたか分かる方いらっしゃいますか。 プログラム implicit real*8 (a-h,o-z) parameter(n=900) open (1,file='004.txt',status='old') do 10 i=1,n read (1,*,end=11)xx,yy,zz,ww theta=acos(zz) phi1=acos(xx/sqrt(1-zz*zz)) phi2=asin(yy/sqrt(1-zz*zz)) write(*,*)theta,phi1,phi2 10 continue 11 end プログラム内容 あるフォルダーに保存してあるテキストファイルから4×4行列のデータを読み込み、そのデータからθの値とφ1、φ2のアタを求めるプログラムです。 実行分のエラー画面には、 acos: DOMAIN error です。

  • 教えてください

    a(複素平面)を正則関数fの孤立特異点とする。この時aがn位の零点ならばaはf '/fの一位の極で、Res{(f '/f),a}=n をしめせ

  • 数学の問題がわかりません><

    数学の問題がわかりません!よければ教えてください>< I = [0,∞)とおく。 f , f_n ; I → R はI上で有界な関数とし、関数列{f_n}[n=1,∞]は関数 f に I 上で一様収束するとする。 (1) 各n∈Nに対してlim[x→∞]f_n(x) = a_n ∈Rが成り立つならば、数列{a_n}[n=1,∞]はCauchy列であることを示せ。 (2) (1)と同じ条件の下でlim[n→∞]a_n = A とおくとき、lim[x→∞]f(x) = Aであることを示せ。 回答よろしくお願いします!

  • phpでのソートについて

    phpのソートについて教えてください。 以下のようなカンマ区切りのログファイルlog.txtがあるとしまして、 100,200,a,b,c, 300,100,d,e,f, 500,60,g,h,i, 50,300,j,k,l, 1000,60,m,n,o, このデータから 1番目のデータ(数値)が2番目のデータ(数値)より大きいデーターのみを対象にして ※つまりは以下のみ対象 300,100,d,e,f, 500,60,g,h,i, 1000,60,m,n,o, ここから1番目のデータ(数値)から2番目のデータ(数値)を引いた数が大きい順に ソートしてファイルに保存させたいのですが、 200,d,e,f,(300-100なので200) 440,g,h,i,(500-60なので440) 940,m,n,o,(1000-60なので940) ↓ ※最終的にこの順番で新しいログファイルnewlog.txtへ保存させたい 940,m,n,o, 440,g,h,i, 200,d,e,f, これらの処理を効率よく1度で行う方法はございますでしょうか。 わかりにくい説明で申し訳ありません。 お忙しい中恐縮ですがご教授いただけましたら幸いです。 何卒宜しくお願い致します。

    • ベストアンサー
    • PHP