#pragma rtGlobals=1 // Use modern global access method. //////////////////////////////////////////////////////////////////////////////// //////////////////// 温度計較正 // 読み込んだデータは // 温度:T***** // 抵抗:R***** // として保存しておく // // 使い方 // 1. CalibrationPrompt 実行("Calibration"メニュー --> Calibration or Ctrl+0 or 直接入力) // 2. 温度、抵抗のデータを選ぶ // // その他 // 関数 Calibration 内の変数 num の値を変えればFitting の次数を変更できる // 質問・要望・バグ報告は さの までお願いします //////////////////////////////////////////////////////////////////////////////// #include Menu "Calibration" "Calibration/0",CalibrationPrompt() End Function CalibrationPrompt() String Tname,Rname Prompt Tname,"Temp",popup,WaveList("T*",";","DIMS:1") Prompt Rname,"Res",popup,WaveList("R*",";","DIMS:1") DoPrompt "Calibration",Tname,Rname if(V_flag==0) Calibration($Tname,$Rname) endif End Function Calibration(Twave,Rwave) Wave Twave,Rwave String cmd,txt,str Variable i,num num=6 //Fitting の次数 Display Rwave vs Twave ModifyGraph log=1,rgb[0]=(65535,0,0),mode[0]=3,margin(top)=50,axOffset(left)=-2 DoUpdate Duplicate/O Twave,$("Fit"+NameOfWave(Twave)) Wave LogTwave=$("Fit"+NameOfWave(Twave)) LogTwave[]=log(Twave[p]) Duplicate/O Rwave,$("Fit"+NameOfWave(Rwave)) Wave LogRwave=$("Fit"+NameOfWave(Rwave)) LogRwave[]=log(Rwave[p]) Sort LogRwave,LogRwave,LogTwave XYToWave1(LogRwave,LogTwave,ReplaceString("R",NameOfWave(Rwave),"Fit"),DimSize(LogRwave,0)) Wave FitWave=$ReplaceString("R",NameOfWave(Rwave),"Fit") CurveFit/Q poly num, FitWave /D=FitWave Wave W_coef sprintf str,"%f",W_coef[0] cmd="y="+str txt="\\f02y\\f00 = "+str for(i=1;i