我正在使用 Igor Pro(我不经常使用)。我正在尝试计算一波小数点右侧的位数,如果有的话。然后在第二波中添加一个小数位,无论左边多少位,都在第一波中。作为参考,我附上了一张我目前拥有的照片。波“test_correct”是它应该的样子,而“fix_err”是我当前输出的。我已经有一段时间了,但似乎无法弄清楚,任何帮助将不胜感激。谢谢 例子
Function testErrFix()
wave test_energy, test_err
variable i, j, s
variable len = numpnts(test_energy)
make/O/D/N=(len) fix_err
string current_Energy
string current_Err
string Error
variable slen
For(i=0;i<len;i+=1)
current_Energy = num2str(test_energy[i])
current_Err = num2str(test_err[i])
slen = strlen(current_energy)
Error = ""
For(j=0;j<slen;j+=1)
If(Stringmatch(current_Energy[j], ".")==1)
For(s=j;s<slen;s+=1)
Error += "." + current_Err[s-4] + current_Err[s-3] + current_Err[s-2]
EndFor
ElseIf(Stringmatch(current_Energy[j], "")==1)
Error += current_Err[s+1]
For(s=j;s<slen;s+=1)
Error = current_Err[s]
EndFor
EndIf
EndFor
fix_err[i] = str2num(Error)
EndFor
End