Tuesday, 11 July 2017

Matlab เคลื่อนไหว เฉลี่ย อาร์เรย์


ฉัน ve มีเวกเตอร์และฉันต้องการคำนวณค่าเฉลี่ยเคลื่อนที่ของมันโดยใช้หน้าต่างของความกว้าง 5.For เช่นถ้าเวกเตอร์ในคำถาม 1,2,3,4,5,6,7,8 แล้ว then. the แรก. รายการของเวกเตอร์ที่ได้ควรเป็นผลรวมของรายการทั้งหมดใน 1,2,3,4,5 เช่น 15. รายการที่สองของเวกเตอร์ที่ได้ควรเป็นผลรวมของรายการทั้งหมดใน 2,3,4,5,6 เช่น 20. ในท้ายที่สุดเวกเตอร์ที่เป็นผลลัพธ์ควรเป็น 15,20,25,30 ฉันจะทำอย่างไรได้ฟังก์ชัน conv นั้นขึ้นอยู่กับซอยของคุณคำตอบ 3 วิธีที่แตกต่างกัน ความกว้างของ 5 โดยใช้ timeit รู้สึกฟรีเพื่อ poke หลุมในความคิดเห็นถ้าคุณคิดว่ามันต้อง refined. conv โผล่ออกมาเป็นวิธีที่เร็วที่สุดมันเกี่ยวกับสองครั้งเร็วเท่าวิธีเหรียญ s โดยใช้ตัวกรองและประมาณสี่ครั้งเร็ว Luis วิธีการใช้เมนบอร์ด cumsum นี่คือมาตรฐานการป้อนข้อมูลมาตรฐานอื่น ๆ ที่กำหนดไว้สำหรับความกว้างของหน้าต่างที่แตกต่างกัน 1e4 ที่นี่วิธีการ cumsum ของ Luis Mendo กลายเป็นผู้ชนะที่ชัดเจนเนื่องจากความซับซ้อนของมันเป็นหลัก ควบคุมโดยความยาวของอินพุทและไม่ไวต่อความกว้างของหน้าต่างหากต้องการสรุปคุณควรใช้แนวทาง conv ถ้าหน้าต่างของคุณค่อนข้างเล็กใช้วิธี cumsum ถ้าหน้าต่างของคุณมีขนาดใหญ่มากโค้ดสำหรับ benchmarks. I ต้องคำนวณค่าเฉลี่ยเคลื่อนที่ในชุดข้อมูลภายในลูปสำหรับฉันต้องได้รับค่าเฉลี่ยเคลื่อนที่เหนือ N 9 วันอาร์เรย์ที่ฉันคำนวณเป็นชุดค่า 365 จำนวน M ซึ่งเป็นค่าเฉลี่ยของชุดข้อมูลอื่น ฉันต้องการพล็อตค่าเฉลี่ยของข้อมูลของฉันกับค่าเฉลี่ยเคลื่อนที่ในหนึ่ง plot. I googled เล็กน้อยเกี่ยวกับการย้ายค่าเฉลี่ยและคำสั่ง conv และพบสิ่งที่ฉันพยายามใช้ใน code. So ของฉันโดยทั่วไปฉันคำนวณค่าเฉลี่ยของฉันและพล็อตมัน กับค่าเฉลี่ยเคลื่อนที่ผิดฉันเลือกค่า wts ขวาปิดเว็บไซต์ mathworks เพื่อให้เป็นแหล่งที่ไม่ถูกต้องปัญหาของฉันว่าเป็นที่ฉันไม่เข้าใจสิ่งที่ wts นี้คือใครสามารถอธิบายหากมีบางอย่างจะทำอย่างไรกับน้ำหนักของค่า ที่ไม่ถูกต้องในกรณีนี้ค่าทั้งหมด es จะถ่วงน้ำหนักเหมือนกันและถ้าฉันทำอย่างนี้ผิดทั้งหมดฉันขอความช่วยเหลือกับมันขอแสดงความนับถือ thank. asked กันยายน 23 กันยายนที่ 19 05.Using conv เป็นวิธีที่ดีที่จะใช้ค่าเฉลี่ยเคลื่อนที่ในรหัสที่คุณ ใช้วัตต์เป็นเท่าใดคุณจะชั่งน้ำหนักแต่ละค่าตามที่คุณคาดเดาผลรวมของเวกเตอร์ที่ควรจะเท่ากับหนึ่งถ้าคุณต้องการน้ำหนักแต่ละค่าเท่ากันและทำขนาด N ย้ายตัวกรองแล้วคุณจะต้องการทำใช้ อาร์กิวเมนต์ที่ถูกต้องใน conv จะทำให้มีค่าน้อยกว่า Ms มากกว่าที่คุณมีใน M ใช้เหมือนกันถ้าคุณ don t ใจผลกระทบจากการ padding ศูนย์ถ้าคุณมีกล่องเครื่องมือการประมวลผลสัญญาณที่คุณสามารถใช้ cconv ถ้าคุณต้องการลองเป็นค่าเฉลี่ยเคลื่อนที่แบบวงกลม Something เช่นคุณควรอ่านเอกสาร conv และ cconv เพื่อดูข้อมูลเพิ่มเติมหากคุณยังไม่ได้ใช้งานคุณสามารถใช้ตัวกรองเพื่อค้นหาค่าเฉลี่ยที่ใช้งานได้โดยไม่ต้องใช้ loop สำหรับตัวอย่างนี้ใช้หาค่าเฉลี่ยของเวกเตอร์ 16 องค์ประกอบโดยใช้ขนาดของหน้าต่าง 5.2 ราบรื่นเป็นส่วนหนึ่งของ Curve Fitting Toolbox ซึ่งมีอยู่ในกรณีส่วนใหญ่ y y ราบรื่น smooths ข้อมูลในคอลัมน์เวกเตอร์ y โดยใช้ค่าเฉลี่ยตัวกรองที่เคลื่อนที่ผลลัพธ์จะถูกส่งกลับในเวกเตอร์ของคอลัมน์ yy ช่วงค่าเริ่มต้นสำหรับค่าเฉลี่ยเคลื่อนที่คือ 5.29 กันยายน 2013.Moving เฉลี่ยโดย convolution. What เป็นค่าเฉลี่ยเคลื่อนที่และสิ่งที่เป็นประโยชน์สำหรับการคำนวณค่าเฉลี่ยของการเคลื่อนที่เฉลี่ยโดยใช้ convolution. Moving คือการดำเนินการง่ายๆโดยปกติจะใช้เพื่อลดสัญญาณรบกวนของสัญญาณที่เราตั้งค่าของแต่ละจุดให้ค่าเฉลี่ยของค่าในละแวกของมัน สูตรที่นี่ x เป็นอินพุทและ y เป็นสัญญาณเอาท์พุทในขณะที่ขนาดของหน้าต่างเป็น w ซึ่งควรจะเป็นเลขคี่สูตรข้างต้นจะอธิบายการทำงานที่สมมาตรตัวอย่างถูกนำมาจากทั้งสองด้านของจุดที่เกิดขึ้นจริงด้านล่างเป็น ตัวอย่างเช่นชีวิตจริงจุดที่หน้าต่างถูกวางไว้จริงคือค่าสีแดงด้านนอก x ควรจะเป็นค่าศูนย์หากต้องการเล่นรอบ ๆ และดูผลของค่าเฉลี่ยเคลื่อนที่ให้ดูการสาธิตแบบโต้ตอบนี้วิธีการทำโดย convolution. As คุณอาจ ha ได้รับการยอมรับการคำนวณค่าเฉลี่ยเคลื่อนที่ที่เรียบง่ายคล้ายกับ convolution ในทั้งสองกรณีหน้าต่างจะเลื่อนไปตามสัญญาณและองค์ประกอบในหน้าต่างจะสรุปดังนั้นลองทำสิ่งเดียวกันโดยใช้ convolution ใช้พารามิเตอร์ต่อไปนี้ เอาท์พุทที่ต้องการเป็นวิธีแรกให้เราลองสิ่งที่เราได้รับโดยการ convolving สัญญาณ x โดย kernel k ต่อไปนี้ออกเป็นว่าสามครั้งใหญ่กว่าคาดว่าจะสามารถเห็นได้ว่าค่าเอาท์พุทเป็นบทสรุปของ สามองค์ประกอบในหน้าต่างเป็นเพราะในระหว่าง convolution หน้าต่างจะเลื่อนพร้อมองค์ประกอบทั้งหมดในนั้นจะคูณด้วยหนึ่งและสรุปแล้ว yk 1 cdot x 1 cdot x 1 cdot x เพื่อให้ได้ค่าที่ต้องการของ y ผลลัพธ์จะหารด้วย 3. โดยสูตรรวมถึงการแบ่งส่วน แต่จะไม่เป็นการดีที่สุดในการแบ่งระหว่าง convolution นี่เป็นแนวคิดโดย rearranging สมการดังนั้นเราจะใช้ kernel k ต่อไปนี้ด้วยวิธีนี้เราจะได้รับเอาท์พุทที่ต้องการโดยทั่วไปถ้าเราต้องการที่จะทำค่าเฉลี่ยเคลื่อนที่โดย convolution ที่มีขนาดหน้าต่างของ w เราจะใช้ k kernel ต่อไปนี้ง่าย การทำงานของค่าเฉลี่ยเคลื่อนที่คือการใช้ตัวอย่างเช่น

No comments:

Post a Comment