Sunday 2 July 2017

วงกลม เฉลี่ยเคลื่อนที่


นี่คือข้อเสนอแนะอื่น ๆ อย่างสมบูรณ์ผมพยายามที่จะทำให้มันเป็นจริงได้ดีขึ้นแทนที่จะอ่านได้มากขึ้นปัญหากับรหัสปัจจุบันของคุณคือว่าผลรวมจำนวนมากขึ้นอีกครั้งและอีกครั้งเมื่อไม่จำเป็นต้องจริงๆทั้งสองวิธีหลังจากรหัสการดำเนินงานฉัน m เพียงข้อสรุปพวงเป็นครั้งแรกแล้วลบหางและเพิ่มหัวอีกครั้งและอีกครั้งและอีกครั้งและนี่คือการทดสอบความเร็วในการเปรียบเทียบวิธีการคำนวณเต็มรูปแบบครั้งเดียวกับนี้เนื่องจาก Foo1 เป็น O nm และ Foo2 เป็น O nm มันไม่น่าแปลกใจเลยว่าความแตกต่างจะใหญ่โตมากเมื่อเทียบกับขนาดใหญ่ที่ไม่ใหญ่เท่านี้ผลลัพธ์ที่ได้จะเท่ากับ True. Foo1 5 52 seconds. Foo2 61 1 มิลลิวินาทีและในขนาดใหญ่แทนที่ 1000 ด้วย 10000 เมื่อทำซ้ำและ count. Foo1 หยุดทำงานหลังจาก 10 นาที 2 นาที 6 วินาที 9 วินาทีหนึ่งในแอพพลิเคชันหลักของบอร์ด Arduino คือการอ่านและบันทึกข้อมูลเซ็นเซอร์ตัวอย่างเช่นจอภาพหนึ่งตัวรับแรงกดทุกวินาทีในแต่ละวันเนื่องจากอัตราการสุ่มตัวอย่างสูงมักสร้าง spikes ในกราฟหนึ่ง ๆ ALS o ต้องการมีค่าเฉลี่ยของการวัดเนื่องจากการวัดไม่คงที่ในเวลาสิ่งที่เรามักต้องการคือค่าเฉลี่ยในการทำงานค่าเฉลี่ยของช่วงเวลาหนึ่งและมีค่ามากเมื่อทำการวิเคราะห์แนวโน้มรูปแบบเฉลี่ยของค่าเฉลี่ยที่ใช้งานได้ โดยใช้รหัสที่สร้างขึ้นเมื่อ average. In ทำงานก่อนหน้านี้หนึ่ง doesn t ต้องการใช้คณิตศาสตร์จุดลอย - เช่นนี้จะขึ้นหน่วยความจำและลดความเร็ว - หนึ่งสามารถทำเช่นเดียวกันอย่างสมบูรณ์ในโดเมนจำนวนเต็มแบ่งโดย 256 ในตัวอย่างรหัสเป็น shift-right 8 ซึ่งเร็วกว่าบอกว่าแบ่งตามเช่น 100 นี่เป็นจริงสำหรับทุกๆอำนาจของ 2 เป็น divider และหนึ่งต้องดูแลรวมของ weigths เท่ากับพลังของ 2 และแน่นอนหนึ่งควรดูแลไม่มี overflow ปานกลางพิจารณาใช้ unsigned long. If คุณต้องมีค่าเฉลี่ยที่ถูกต้องมากขึ้นใน concreto จากการวัด 10 ครั้งคุณต้องอาร์เรย์หรือรายการที่เชื่อมโยงเพื่อเก็บไว้อาร์เรย์นี้ทำหน้าที่เป็นบัฟเฟอร์แบบวงกลมและมีการวัดใหม่ทุกครั้งที่เก่าที่สุด จะถูกลบออกค่าเฉลี่ยในการทำงานถูกคำนวณเป็นผลรวมขององค์ประกอบทั้งหมดหารด้วยจำนวนขององค์ประกอบในอาร์เรย์รหัสสำหรับค่าเฉลี่ยที่รันจะเป็นค่าที่คล้ายกับข้อมูลนี้กลับไปด้านบนของโค้ดนี้คืออาร์เรย์ที่จะเก็บค่าทั้งหมดจะมีขนาดใหญ่มาก ถ้าคุณมีหนึ่งการวัดต่อวินาทีและคุณต้องการใช้ค่าเฉลี่ยต่อนาทีที่คุณต้องการอาร์เรย์ของ 60 เฉลี่ยต่อชั่วโมงจะต้องอาร์เรย์ของ 3600 ที่ couldn t จะทำแบบนี้ใน Arduino ตามที่มีเพียง 2K ของแรมโดย การสร้างค่าเฉลี่ย 2 ขั้นตอนนี้สามารถเข้าหาคำปฏิเสธไม่ได้สำหรับการตรวจวัดทั้งหมดในโค้ด psuedo เนื่องจากอาร์เรย์แบบคงที่ภายในใหม่จำเป็นสำหรับฟังก์ชัน runningAverage ทุกตัวเสียงกรีดร้องนี้จะถูกนำมาใช้งานในรูปแบบไลบรารี Class. RunningAverage ไลบรารีไลบรารี RunningAverage จะทำให้ class ของฟังก์ชันข้างต้นเพื่อให้สามารถใช้งานได้หลายครั้งในร่างมัน decouples เพิ่มและฟังก์ชันเฉลี่ยที่จะเป็นบิตที่มีความยืดหยุ่นมากขึ้นเช่นหนึ่งสามารถเรียกค่าเฉลี่ยหลาย ๆ ครั้งโดยไม่ต้องเพิ่มสิ่งที่โปรดไม่ te ที่อินสแตนซ์ของคลาสทั้งหมดจะเพิ่มอาร์เรย์ของตัวเองเพื่อเก็บข้อมูลการวัดและจะเพิ่มการใช้หน่วยความจำอินเตอร์เฟสของคลาสจะถูกเก็บไว้ให้เล็กที่สุดเท่าที่จะเป็นไปได้หมายเหตุกับรุ่น 0 2 ชื่อของวิธีการทั้งหมด descriptive. S ร่างเล็กแสดงให้เห็นว่ามันสามารถใช้เครื่องกำเนิดไฟฟ้าแบบสุ่มจะใช้ในการเลียนแบบเซ็นเซอร์ในการติดตั้ง myRA จะถูกล้างเพื่อให้เราสามารถเริ่มต้นการเพิ่มข้อมูลใหม่ในห่วงครั้งแรกจำนวนสุ่มถูกสร้างขึ้นและแปลงเป็นลอยที่จะ เพิ่มลงใน myRA จากนั้นรันการพิมพ์จะถูกพิมพ์ไปยังพอร์ตอนุกรมหนึ่งสามารถแสดงบนจอ LCD หรือส่งผ่านอีเธอร์เน็ต ฯลฯ เมื่อมีการเพิ่ม 300 รายการ myRA จะถูกล้างเพื่อเริ่มใหม่อีกครั้งในการใช้ไลบรารีให้สร้างโฟลเดอร์ในไลบรารีของ SKETCHBOOKPATH มี RunningAverage ชื่อและใส่ h และมีเลือกให้ไดเรกทอรีตัวอย่างเพื่อวางตัวอย่าง app. 2011-01-30 เริ่มต้น version.2-02-28 destructor หายไปคงที่ใน h file constructor เริ่มต้นลบ 2012- - trimValue Yuval Naveh เพิ่มการตัดแต่ง ค่าที่พบใน web.2012-11-21 refactored 2012/12/30 เพิ่ม fillValue refactored สำหรับการเผยแพร่ 20.14-07-03 เพิ่มโค้ดป้องกันหน่วยความจำ - ถ้าอาร์เรย์ภายในไม่สามารถกำหนดขนาดได้จะกลายเป็น 0 นี่คือการแก้ปัญหาที่อธิบายไว้ที่นี่ ทดสอบ extensively. Template class. RunningAverage h. RunningAverage. I รู้นี้สามารถทำได้ด้วยการเพิ่มตาม per. But ฉันต้องการหลีกเลี่ยงการใช้เพิ่มฉันมี googled และไม่พบตัวอย่างใด ๆ ที่เหมาะสมหรืออ่านได้โดยปกติฉันต้องการติดตามค่าเฉลี่ยเคลื่อนที่ ของกระแสข้อมูลสตรีมของตัวเลขจุดลอยโดยใช้ตัวเลข 1000 ล่าสุดเป็นตัวอย่างข้อมูลวิธีที่ง่ายที่สุดในการทำเช่นนี้ฉันทดลองใช้อาร์เรย์แบบวงกลมค่าเฉลี่ยเคลื่อนที่แบบเสวนาและค่าเฉลี่ยเคลื่อนที่ที่เรียบง่ายขึ้นและพบได้ ว่าผลลัพธ์จากอาร์เรย์แบบวงกลมเหมาะสมกับความต้องการของฉัน best. asked 12 มิ.ย. 12 เวลา 4 38. ถ้าความต้องการของคุณง่ายคุณอาจลองใช้ค่าเฉลี่ยเคลื่อนที่ที่เป็นไปตามที่อธิบายไว้เพียงแค่คุณสร้างตัวแปรสะสมและเป็นรหัสของคุณดู ที่แต่ละตัว ple โค้ดจะอัพเดต accumulator ด้วยค่าใหม่คุณสามารถเลือกค่า alpha คงที่อยู่ระหว่าง 0 ถึง 1 และคำนวณค่านี้คุณต้องหาค่า alpha ซึ่งผลของตัวอย่างที่กำหนดจะใช้เวลาประมาณ 1000 ตัวอย่างเท่านั้น Hmm ฉันไม่แน่ใจว่าจริงนี้เหมาะสำหรับคุณตอนนี้ที่ฉันได้วางไว้ที่นี่ปัญหาคือ 1000 เป็นหน้าต่างยาวสวยสำหรับการเคลื่อนที่เฉลี่ยฉัน m ไม่แน่ใจว่ามีอัลฟาที่จะกระจายเฉลี่ยมากกว่า สุดท้าย 1000 หมายเลขโดยไม่ underflow ในการคำนวณจุดลอย แต่ถ้าคุณต้องการค่าเฉลี่ยที่เล็กกว่าเช่น 30 ตัวเลขหรือดังนั้นนี้เป็นวิธีที่ง่ายและรวดเร็วในการทำ it. answered 12 มิถุนายน 12 ที่ 4 44 1 โพสต์ของคุณ ค่าเฉลี่ยเคลื่อนที่แบบเสแสร้งสามารถให้ตัวแปร alpha เป็นตัวแปรดังนั้นวิธีนี้จึงใช้สำหรับคำนวณค่าเฉลี่ยของฐานเวลาเช่นไบต์ต่อวินาทีถ้าเวลานับตั้งแต่การอัปเดตสะสมครั้งล่าสุดมากกว่า 1 วินาทีคุณจะยอมให้ alpha เป็น 1 0 มิฉะนั้นคุณสามารถให้ alpha เป็น usecs ตั้งแต่การอัปเดตล่าสุด 1000000 jxh 12 มิ.ย. 12 ที่ 6 21 โดยทั่วไปฉันต้องการติดตามค่าเฉลี่ยเคลื่อนที่ของสตรีมสตรีมของตัวเลขจุดลอยโดยใช้ตัวเลข 1000 รายการล่าสุดเป็นตัวอย่างข้อมูลโปรดทราบว่าด้านล่างปรับปรุงชุดค่าผสมทั้งหมดเป็นองค์ประกอบแทนที่ถูกแทนที่โดยหลีกเลี่ยงการข้ามค่าใช้จ่ายเพื่อคำนวณ sum - จำเป็นสำหรับค่าเฉลี่ย - เมื่อ demand. Total จะทำพารามิเตอร์ที่แตกต่างจาก T สนับสนุนเช่นใช้ยาวนานเมื่อรวม 1000 ยาว s, int สำหรับ char s หรือ double เพื่อ float ทั้งหมด s. This เป็นบิตสมบูรณ์ ใน numsamples ที่อาจผ่าน INTMAX - ถ้าคุณดูแลคุณสามารถใช้ unsigned long long หรือใช้สมาชิก bool ข้อมูลพิเศษเพื่อบันทึกเมื่อบรรจุก่อนบรรจุในขณะที่การขี่จักรยาน numsamples รอบแถวที่ดีที่สุดแล้วเปลี่ยนชื่อบางสิ่งบางอย่างที่ไม่เป็นสุข like pos. answered Jun 12 12 ที่ 5 19.one สันนิษฐานว่าผู้ประกอบการโมฆะ T ตัวอย่างเป็นจริงโมฆะดำเนินการตัวอย่าง T oPless มิถุนายน 8 14 ที่ 11 52. oPhtts ahhh เห็นดีจริงฉันหมายความว่ามันจะเป็นโมฆะดำเนินการ T ตัวอย่าง แต่แน่นอนคุณสามารถใช้สิ่งที่คุณสัญกรณ์ ลี้ ked จะแก้ไขขอบคุณ Tony D มิถุนายน 8 14 ที่ 14 27

No comments:

Post a Comment