Re: [問題] 請問我該用那些功能?

作者: jurian0101 (Hysterisis)   2013-04-29 19:34:38
推 van6499:如果data變成{{1.1,2},{1.2,4},{1.3,3},{1.4,1},{1.5,5} 04/29 15:10
→ van6499:{1.6,3},{1.7,6},{1.8,4}}的話改怎麼修改讀取間距 04/29 15:11
→ van6499:更正{{1.2,2},{1.4,4},{1.6,3},{1.8,1},{2.0,5},{2.2,3} 04/29 15:12
→ van6499:{2.4,6},{2.6,4} 04/29 15:12
→ van6499:讓讀取間距變成 0.2、0.4、0.6、0.8、1.0...、1.6 04/29 15:13
→ van6499:的話該怎麼改? 04/29 15:13
這邊響起警鈴,雖然你沒明說,但若是原始資料{x,y}對比較散亂不是等距分布的話
怎麼辦? 我試用這個較一般化的方法
data= {{1.1,2},{1.2,4},{1.3,3},{1.4,1},{1.5,5},{1.6,3},{1.7,6},{1.8,4}}
fetch[間距_]:= ReplaceList[data,
{___, {x1_,y1_}, ___, {x2_,y2_}, ___} /; x2 - x1 == 間距 :> {y1, y2}]
(*
取間距=h的兩筆資料。該語法的意思是 ReplaceList[data, pattern],它會比對出
data裡所有符合pattern(紅色部分)的可能性,由 /; 運算子代入黃色邏輯運算
,若相符,邏輯值為真則依照箭號:>後面青色部分來輸出。
有點兒進階抱歉XD *)
vario[間距_] := Mean[(#1 - #2)^2 & @@@ fetch[間距]]
- - -
如果測資的X沒照順序排,得先用個SortBy使它排好,假設
rawdata= {{1.3, 4}, {2., 9}, {1.2, 6}, {2., 8}, {1.5, 6}, {1.7, 5}, {0.5,
9}, {0.7, 7}, {1.4, 4}, {1.6, 3}}
data= SortBy[rawdata, Frist]
fetch[] 與 vario[] 不需改
例如vario[0.2]=14/5 vario[0.3]=27/5
試試看
作者: van6499 (KIDD)   2013-04-29 15:10:00
如果data變成{{1.1,2},{1.2,4},{1.3,3},{1.4,1},{1.5,5}{1.6,3},{1.7,6},{1.8,4}}的話改怎麼修改讀取間距更正{{1.2,2},{1.4,4},{1.6,3},{1.8,1},{2.0,5},{2.2,3}{2.4,6},{2.6,4}讓讀取間距變成 0.2、0.4、0.6、0.8、1.0...、1.6的話該怎麼改?
作者: sunev (Veritas)   2013-04-29 19:38:00
說只有mathematica做得到有點怪怪的。

Links booklink

Contact Us: admin [ a t ] ucptt.com