mPEC Forum

บทเรียน => การใช้โปรแกรม Mathematica => Topic started by: nhing on January 09, 2007, 11:17:34 PM



Title: การเขียนฟังก์ชัน median
Post by: nhing on January 09, 2007, 11:17:34 PM
ถ้าเราจะสร้างฟังก์ชันมัธยฐานเอง (ในรูป list) โดยใช้คำสั่ง Sort

median[l, List] := (n = Length[l]; l2 = Sort[l]); If[Mod[n, 2] == 0, (l2〚n/2〛 + l2〚n/2 + 1〛)/2, l2〚(n + 1)/2〛]

median[{1,3,4,5}]  กด shift Enter แล้วทำไมมันไม่ออกคับ


Title: Re: การเขียนฟังก์ชัน median
Post by: psaipetc on January 10, 2007, 04:39:11 PM
median[l,List] ควรจะเป็น median[l_List] ครับ

อีกอย่าง ควรจะเก็บคำสั่งหลายๆอันไว้ใน Module[] ตัวแปรที่ชื่อซ้ำจะได้ไม่ถูกเปลี่ยนค่า

เราสามารถใช้ EvenQ[] และ OddQ[] ดูเลขคู่ เลขคี่ได้

เช่น

median[l_List] := Module[{n = Length[l], l2 = Sort[l]},
    If[EvenQ[n],  (l2[[n/2]] + l2[[n/2 + 1]])/2,  l2[[(n + 1)/2]] ]
    ]


Title: Re: การเขียนฟังก์ชัน median
Post by: nhing on January 13, 2007, 02:57:38 PM
ขอบคุณมากๆคับบ