Tuesday 1 August 2017

การย้าย ค่าเฉลี่ย matlab แมทริกซ์


Im กำลังมองหาคำแนะนำในการใช้ CONVN เพื่อคำนวณค่าเฉลี่ยเคลื่อนที่ในมิติเดียวบน matrix 3 มิติ Im รับเพียงเล็กน้อยขึ้นบนพลิกของเคอร์เนลภายใต้ประทุนและหวังว่าคนอาจจะสามารถชี้แจงพฤติกรรมสำหรับฉัน โพสต์ที่คล้ายคลึงกันซึ่งยังคงทำให้ฉันสับสนอยู่ที่นี่: ฉันมีข้อมูลการไหลของแม่น้ำและอากาศทุกวันสำหรับลุ่มน้ำในสถานที่ต่างๆ ดังนั้นเมทริกซ์เป็นเช่นนั้นสลัว 1 (แถว) แสดงแต่ละสลัวไซต์ 2 (คอลัมน์) แสดงวันที่สลัว 3 (หน้า) แสดงประเภทของการวัดต่าง ๆ (ความสูงของแม่น้ำการไหลปริมาณน้ำฝนเป็นต้น) เป้าหมาย คือพยายามใช้ CONVN เพื่อใช้ค่าเฉลี่ยเคลื่อนที่ 21 วันในแต่ละไซต์สำหรับจุดสังเกตแต่ละจุดสำหรับแต่ละตัวแปร เป็นฉันเข้าใจฉันควรจะสามารถใช้เมล็ด aa เช่นฉันพยายามเล่นรอบและสร้างเคอร์เนลอื่นที่ควรทำงาน (ฉันคิดว่า) และตั้ง ker2 เป็น: ผลไม่มากตรงกับและฉันสงสัยว่าถ้าฉันมี ขนาดที่ไม่ถูกต้องสำหรับเคอร์เนล แนวทางใดที่ได้รับความนิยมอย่างมาก BTW คุณมีเคอร์เนลที่สมมาตรและ flipping ดังนั้นควรไม่มีผลต่อผลลัพธ์ convolution สิ่งที่คุณได้ระบุไว้เป็นเคอร์เนลเฉลี่ยที่เคลื่อนที่โดยเฉลี่ยและการหมุนวนจะทำงานในการหาค่าเฉลี่ยเคลื่อนที่ตามที่คุณคาดหวัง แต่ I'm บิตสับสนเพราะคุณกล่าวว่าข้างต้นไม่ทำงาน Raydry Raydray พฤษภาคม 31 15 ที่ 20:17 ที่สมบูรณ์ขึ้นอยู่กับคุณ :) คำถามที่คุณมีคือคำตอบที่ถูกต้อง (ไม่มีการเล่นสำนวน) ที่จะทำให้ผู้คนจำนวนมากขึ้น ถ้าคุณต้องการที่จะอยู่ฉันสามารถเขียนคำตอบที่สรุปสิ่งที่เราพูดถึง ถ้าคุณต้องการยกเลิกการลบคำตอบของคุณก็ไม่มีปัญหาเลย แจ้งให้ทราบในบริบทของคำถามของคุณคุณมีเมทริกซ์ 3D และคุณต้องการหาค่าเฉลี่ยเคลื่อนที่ของแต่ละแถวเป็นอิสระจากชิ้นส่วน 3D ทั้งหมด โค้ดข้างต้นควรจะใช้ได้ (กรณีแรก) อย่างไรก็ตามแฟล็กที่ถูกต้องจะส่งกลับเมทริกซ์ที่มีขนาดถูกต้องในขอบเขตของเส้นรอบวง ดูจุดแรกของโพสต์ที่คุณเชื่อมโยงเพื่อดูรายละเอียดเพิ่มเติม โดยเฉพาะรายการ 21 รายการแรกสำหรับแต่ละแถวจะหายไปเนื่องจากค่าสถานะที่ถูกต้อง เฉพาะเมื่อคุณไปที่รายการที่ 22 ของแต่ละแถวเคอร์เนลการหมุนเวียนจะมีอยู่ภายในแถวเมตริกซ์และจากจุดที่คุณได้ผลลัพธ์ที่ถูกต้อง (ไม่มีจุดประสงค์ในการเล่นสำนวน) หาก youd ต้องการเห็นรายการเหล่านี้ที่ขอบเขตแล้วคุณจะต้องใช้ธงเดียวกันถ้าคุณต้องการรักษาเมทริกซ์ขนาดเดียวกันเป็น input หรือธงเต็ม (ซึ่งเป็นค่าเริ่มต้น) ซึ่งจะช่วยให้คุณขนาดของผลผลิตที่เริ่มต้นจาก ขอบด้านนอกที่รุนแรงที่สุด แต่จำไว้ว่าค่าเฉลี่ยเคลื่อนที่จะทำกับพวงของ zeroes และดังนั้น 21 รายการแรก wouldnt เป็นสิ่งที่คุณคาดหวังต่อไป อย่างไรก็ตามหากมีการแปลความหมายสิ่งที่คุณต้องการแล้วธงที่ถูกต้องคือสิ่งที่คุณต้องการ แต่จำไว้ว่าคุณจะมี 21 รายการที่ขาดหายไปเพื่อรองรับกรณีขอบ โดยรวมแล้วรหัสของคุณควรทำงาน แต่ต้องระวังในการตีความผลลัพธ์ BTW คุณมีเคอร์เนลที่สมมาตรและ flipping ดังนั้นควรไม่มีผลต่อผลลัพธ์ convolution สิ่งที่คุณได้ระบุไว้คือเคอร์เนลเฉลี่ยที่เคลื่อนที่โดยเฉลี่ยดังนั้น convolution ควรทำงานในการหาค่าเฉลี่ยเคลื่อนที่ตามที่คุณคาดหวังการใช้ MATLAB ฉันจะหาค่าเฉลี่ยเคลื่อนที่ 3 วันของคอลัมน์เฉพาะของเมตริกซ์และเพิ่มค่าเฉลี่ยเคลื่อนที่ได้ ฉันกำลังพยายามหาค่าเฉลี่ยเคลื่อนที่ 3 วันจากด้านล่างจนถึงด้านบนของเมทริกซ์ ฉันได้ให้รหัสของฉัน: กำหนดเมทริกซ์ต่อไปนี้และหน้ากาก: ฉันได้ลองใช้คำสั่ง conv แต่ฉันได้รับข้อผิดพลาด นี่คือ conv คำสั่งฉันได้พยายามใช้ในคอลัมน์ที่ 2 ของ matrix a: เอาต์พุตฉันต้องการจะได้รับในเมทริกซ์ต่อไปนี้: ถ้าคุณมีคำแนะนำใด ๆ ฉันจะขอบคุณมากมัน ขอขอบคุณสำหรับคอลัมน์ 2 ของ matrix a ฉันคำนวณค่าเฉลี่ยเคลื่อนที่ 3 วันดังนี้และใส่ผลลัพธ์ในคอลัมน์ 4 ของ matrix a (เปลี่ยนชื่อเมทริกซ์เป็น 39desiredOutput39 เพื่อแสดงภาพประกอบ) ค่าเฉลี่ย 3 วันเฉลี่ย 17, 14, 11 คือ 14 เฉลี่ย 3 วันจาก 14, 11, 8 คือ 11 เฉลี่ย 3 วันที่ 11, 8, 5 คือ 8 และค่าเฉลี่ย 3 วันของ 8, 5, 2 คือ 5. ไม่มีค่าในแถวล่าง 2 แถวสำหรับคอลัมน์ที่ 4 เนื่องจากการคำนวณค่าเฉลี่ยเคลื่อนที่ 3 วันเริ่มต้นที่ด้านล่าง ผลลัพธ์ 39valid39 จะไม่ปรากฏขึ้นจนกว่าอย่างน้อย 17, 14, และ 11. หวังว่านี่จะทำให้เกิดความรู้สึก Aaron Aaron 12 มิถุนายน 13 เวลาโดยทั่วไปแล้วจะช่วยได้ถ้าคุณจะแสดงข้อผิดพลาด ในกรณีนี้คุณกำลังทำผิดพลาด 2 ประการประการแรกต้องแบ่งความสามัคคีเป็นสามส่วน (หรือความยาวของค่าเฉลี่ยเคลื่อนที่) ประการที่สองให้สังเกตขนาดของ c คุณไม่สามารถเพียงพอดีกับ c ใน a. วิธีทั่วไปในการรับค่าเฉลี่ยเคลื่อนที่จะใช้เหมือนกัน: แต่ที่ไม่ได้มีลักษณะเหมือนที่คุณต้องการ คุณจะถูกบังคับให้ใช้สายคู่: 29 กันยายน, 2013 ค่าเฉลี่ยเคลื่อนที่โดย convolution ค่าเฉลี่ยเคลื่อนที่คืออะไรและมีประโยชน์อย่างไรสำหรับการเคลื่อนที่โดยเฉลี่ยโดยใช้ convolution Moving average คือการดำเนินการง่ายๆที่ใช้เพื่อปราบปรามเสียงของ สัญญาณ: เรากำหนดค่าของแต่ละจุดให้เป็นค่าเฉลี่ยของค่าในละแวกเดียวกัน โดยสูตร: นี่ x เป็นอินพุทและ y เป็นสัญญาณเอาต์พุตในขณะที่ขนาดของหน้าต่างเป็น w ซึ่งควรจะเป็นเลขคี่ สูตรข้างต้นอธิบายการทำงานแบบสมมาตร: ตัวอย่างจะถูกนำมาจากทั้งสองด้านของจุดจริง ด้านล่างเป็นตัวอย่างชีวิตจริง จุดที่หน้าต่างวางอยู่จริงเป็นสีแดง ค่าที่อยู่นอก x ควรเป็นศูนย์: เมื่อต้องการเล่นรอบ ๆ และดูผลกระทบของค่าเฉลี่ยเคลื่อนที่ให้ดูการสาธิตแบบโต้ตอบนี้ การคำนวณค่าเฉลี่ยเคลื่อนที่ที่เรียบง่ายมีความคล้ายคลึงกับ convolution: ในทั้งสองกรณีหน้าต่างจะถูกเลื่อนไปตามสัญญาณและองค์ประกอบต่างๆในหน้าต่างจะสรุปได้ ดังนั้นให้ลองทำสิ่งเดียวกันโดยใช้ convolution ใช้พารามิเตอร์ต่อไปนี้: ผลลัพธ์ที่ต้องการคือ: เป็นวิธีแรกให้เราลองทำสิ่งที่เราได้รับโดยการ convolving สัญญาณ x โดย k kernel ต่อไปนี้: ผลลัพธ์เป็นสามเท่ามากกว่าที่คาดไว้ นอกจากนี้ยังสามารถเห็นได้ว่าค่าที่ส่งออกคือส่วนสรุปของสามองค์ประกอบในหน้าต่าง เนื่องจากในระหว่างการบิดหน้าต่างจะเลื่อนตามองค์ประกอบทั้งหมดที่อยู่ในนั้นคูณด้วยหนึ่งและสรุปได้ดังนี้: yk 1 cdot x 1 cdot x 1 cdot x เพื่อให้ได้ค่าที่ต้องการของ y เอาท์พุทจะหารด้วย 3: โดยสูตรรวมถึงการหาร: แต่จะไม่ดีที่สุดที่จะทำส่วนในช่วง convolution นี่มาคิดโดยการจัดเรียงสมการ: ดังนั้นเราจะใช้ kernel ต่อไปนี้: ด้วยวิธีนี้เราจะ รับเอาท์พุทที่ต้องการ: โดยทั่วไป: ถ้าเราต้องการทำค่าเฉลี่ยเคลื่อนที่โดย convolution ที่มีขนาดหน้าต่าง w เราจะใช้เคอร์เนลต่อไปนี้: ฟังก์ชันง่ายๆที่ทำค่าเฉลี่ยเคลื่อนที่คือ: ตัวอย่างการใช้งานคือ: เอกสารออก tsmovavg (tsobj, s, lag) ส่งกลับค่าเฉลี่ยเคลื่อนที่โดยอัตโนมัติสำหรับชุดข้อมูลทางการเงิน tsobj lag แสดงจำนวนจุดข้อมูลก่อนหน้าที่ใช้กับจุดข้อมูลปัจจุบันเมื่อคำนวณค่าเฉลี่ยเคลื่อนที่ output tsmovavg (vector, s, lag, dim) ให้ค่าเฉลี่ยเคลื่อนที่ที่แท้จริงสำหรับเวกเตอร์ lag แสดงจำนวนจุดข้อมูลก่อนหน้าที่ใช้กับจุดข้อมูลปัจจุบันเมื่อคำนวณค่าเฉลี่ยเคลื่อนที่ tsmovavg ส่งออก (tsobj, e, timeperiod) ส่งกลับค่าเฉลี่ยถ่วงน้ำหนักแบบเสวนาสำหรับวัตถุชุดเวลาทางการเงิน tsobj ค่าเฉลี่ยเคลื่อนที่แบบเสวนาคือค่าเฉลี่ยเคลื่อนที่ถ่วงน้ำหนักโดยที่ timeperiod ระบุช่วงเวลา ค่าเฉลี่ยเคลื่อนที่ที่เป็นตัวชี้วัดจะช่วยลดความล่าช้าโดยการใช้น้ำหนักมากขึ้นกับราคาล่าสุด ตัวอย่างเช่นค่าเฉลี่ยเลขคณิตเชิงเส้น 10 ช่วงน้ำหนักจะเป็นราคาล่าสุดที่ 18.18 เปอร์เซ็นต์การแจกแจงร้อยละ 2 (TIMEPER 1) หรือ 2 (WINDOWSIZE 1) tsmovavg ส่งออก (vector, e, timeperiod, dim) ส่งกลับค่าเฉลี่ยเคลื่อนที่แบบถ่วงน้ำหนักที่อธิบายเป็นเวกเตอร์ ค่าเฉลี่ยเคลื่อนที่แบบเสวนาคือค่าเฉลี่ยเคลื่อนที่ถ่วงน้ำหนักโดยที่ timeperiod ระบุช่วงเวลา ค่าเฉลี่ยเคลื่อนที่ที่เป็นตัวชี้วัดจะช่วยลดความล่าช้าโดยการใช้น้ำหนักมากขึ้นกับราคาล่าสุด ตัวอย่างเช่นค่าเฉลี่ยเลขคณิตเชิงเส้น 10 ช่วงน้ำหนักจะเป็นราคาล่าสุดที่ 18.18 (2 (timeperiod 1)) tsmovavg ส่งออก (tsobj, t, numperiod) ส่งกลับค่าเฉลี่ยเคลื่อนที่สามเหลี่ยมสำหรับชุดข้อมูลทางการเงินแบบเวลา tsobj ค่าเฉลี่ยเคลื่อนที่สามเหลี่ยมสองครั้งทำให้ข้อมูลราบรื่น tsmovavg คำนวณค่าเฉลี่ยเคลื่อนที่แรกที่มีความกว้างของหน้าต่างของเพดาน (numperiod 1) 2. จากนั้นจะคำนวณค่าเฉลี่ยเคลื่อนที่ที่สองในค่าเฉลี่ยเคลื่อนที่แรกที่มีขนาดหน้าต่างเดียวกัน tsmovavg ออก (เวกเตอร์, t, numperiod, dim) ส่งกลับค่าเฉลี่ยเคลื่อนที่สามเหลี่ยมสำหรับเวกเตอร์ ค่าเฉลี่ยเคลื่อนที่สามเหลี่ยมสองครั้งทำให้ข้อมูลราบรื่น tsmovavg คำนวณค่าเฉลี่ยเคลื่อนที่แรกที่มีความกว้างของหน้าต่างของเพดาน (numperiod 1) 2. จากนั้นจะคำนวณค่าเฉลี่ยเคลื่อนที่ที่สองในค่าเฉลี่ยเคลื่อนที่แรกที่มีขนาดหน้าต่างเดียวกัน output tsmovavg (tsobj, w, weights) จะส่งกลับค่าเฉลี่ยถ่วงน้ำหนักที่ถ่วงน้ำหนักสำหรับชุดข้อมูลทางการเงิน tsobj โดยการจัดหาน้ำหนักสำหรับแต่ละองค์ประกอบในหน้าต่างที่เคลื่อนย้าย ความยาวของเวกเตอร์น้ำหนักจะกำหนดขนาดของหน้าต่าง หากใช้ปัจจัยน้ำหนักมากขึ้นสำหรับราคาที่ผ่านมาและปัจจัยที่มีขนาดเล็กกว่าสำหรับราคาก่อนหน้านี้แนวโน้มจะตอบสนองต่อการเปลี่ยนแปลงล่าสุดได้มากขึ้น output tsmovavg (vector, w, weight, dim) ส่งกลับค่าเฉลี่ยเคลื่อนที่ถ่วงน้ำหนักสำหรับเวกเตอร์โดยการจัดหาน้ำหนักสำหรับแต่ละองค์ประกอบในหน้าต่างที่เคลื่อนย้าย ความยาวของเวกเตอร์น้ำหนักจะกำหนดขนาดของหน้าต่าง หากใช้ปัจจัยน้ำหนักมากขึ้นสำหรับราคาที่ผ่านมาและปัจจัยที่มีขนาดเล็กกว่าสำหรับราคาก่อนหน้านี้แนวโน้มจะตอบสนองต่อการเปลี่ยนแปลงล่าสุดได้มากขึ้น tsmovavg ส่งออก (tsobj, m, numperiod) ส่งกลับค่าเฉลี่ยเคลื่อนที่ที่ได้รับการแก้ไขสำหรับชุดข้อมูลทางการเงิน tsobj ค่าเฉลี่ยเคลื่อนที่ที่ปรับเปลี่ยนมีค่าใกล้เคียงกับค่าเฉลี่ยเคลื่อนที่ที่เรียบง่าย พิจารณาเลขคณิตอาร์กิวเมนต์เป็นความล่าช้าของค่าเฉลี่ยเคลื่อนที่ที่เรียบง่าย ค่าเฉลี่ยเคลื่อนที่ที่แก้ไขครั้งแรกจะคำนวณเป็นค่าเฉลี่ยเคลื่อนที่โดยเฉลี่ย ค่าที่เกิดขึ้นภายหลังจะคำนวณโดยการเพิ่มราคาใหม่และลบค่าเฉลี่ยล่าสุดจากผลรวมที่ได้ tsmovavg ส่งออก (เวกเตอร์, m, numperiod, dim) ส่งกลับค่าเฉลี่ยเคลื่อนที่ที่ได้รับการแก้ไขสำหรับเวกเตอร์ ค่าเฉลี่ยเคลื่อนที่ที่ปรับเปลี่ยนมีค่าใกล้เคียงกับค่าเฉลี่ยเคลื่อนที่ที่เรียบง่าย พิจารณาเลขคณิตอาร์กิวเมนต์เป็นความล่าช้าของค่าเฉลี่ยเคลื่อนที่ที่เรียบง่าย ค่าเฉลี่ยเคลื่อนที่ที่แก้ไขครั้งแรกจะคำนวณเป็นค่าเฉลี่ยเคลื่อนที่โดยเฉลี่ย ค่าที่เกิดขึ้นภายหลังจะคำนวณโดยการเพิ่มราคาใหม่และลบค่าเฉลี่ยล่าสุดจากผลรวมที่ได้ dim 8212 มิติเพื่อดำเนินการตามจำนวนเต็มบวกที่มีค่า 1 หรือ 2 มิติเพื่อทำงานพร้อมระบุเป็นจำนวนเต็มบวกที่มีค่า 1 หรือ 2 dim เป็นอาร์กิวเมนต์ตัวเลือกและถ้าไม่รวมเป็นอินพุตค่าเริ่มต้น ค่าที่ 2 จะถือว่า ค่าดีฟอลต์ของ dim 2 หมายถึงเมทริกซ์เชิงแถวซึ่งแต่ละแถวเป็นตัวแปรและแต่ละคอลัมน์จะเป็นค่าสังเกต ถ้าสลัว 1 ใส่จะถือว่าเป็นเวกเตอร์คอลัมน์หรือคอลัมน์ที่มุ่งเน้นเมทริกซ์ที่แต่ละคอลัมน์เป็นตัวแปรและแต่ละแถวสังเกต e 8212 ตัวบ่งชี้สำหรับค่าเฉลี่ยของค่าเฉลี่ยเคลื่อนที่เชิงเส้นค่าเฉลี่ยเคลื่อนที่เป็นค่าเฉลี่ยเคลื่อนที่ถ่วงน้ำหนักโดยที่ timeperiod เป็นช่วงเวลาของค่าเฉลี่ยเคลื่อนที่แบบเสวนา (exponential moving average) ค่าเฉลี่ยเคลื่อนที่ที่เป็นตัวชี้วัดจะช่วยลดความล่าช้าโดยการใช้น้ำหนักมากขึ้นกับราคาล่าสุด ยกตัวอย่างเช่นค่าเฉลี่ยเลขคณิตที่มีการอธิบายเป็นระยะเวลา 10 ค่าเป็นค่าสูงสุดที่ 18.18 เปอร์เซ็นต์ที่ระบุ 2 (TIMEPER 1) หรือ 2 (WINDOWSIZE 1) timeperiod 8212 ระยะเวลาไม่ใช่จำนวนเต็ม integer เลือกประเทศของคุณ

No comments:

Post a Comment