คำถามติดแท็ก linear-algebra

11
อะไรคือไลบรารี C ++ เวกเตอร์ / เมทริกซ์คณิตศาสตร์ / พีชคณิตเชิงเส้นที่ใช้กันอย่างแพร่หลายและการแลกเปลี่ยนต้นทุนและผลประโยชน์ [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ดูเหมือนว่าโครงการจำนวนมากจะต้องทำคณิตศาสตร์เมทริกซ์อย่างช้าๆและตกหลุมพรางของการสร้างเวกเตอร์ชั้นหนึ่งและค่อยๆเพิ่มฟังก์ชั่นการใช้งานจนกว่าพวกเขาจะได้สร้างห้องสมุดพีชคณิตเชิงเส้นที่กำหนดเองแบบครึ่งทางขึ้นอยู่กับมัน ฉันต้องการหลีกเลี่ยงที่ในขณะที่ไม่ได้สร้างในการพึ่งพาไลบรารีที่เกี่ยวข้องกันบางอย่าง (เช่น OpenCV, OpenSceneGraph) อะไรคือไลบรารีเมทริกซ์คณิตศาสตร์ / พีชคณิตเชิงเส้นที่ใช้กันโดยทั่วไปมีอะไรบ้างและเหตุใดจึงตัดสินใจใช้มากกว่าหนึ่ง มีผู้ใดบ้างที่จะไม่แนะนำให้ใช้ด้วยเหตุผลบางอย่าง? ฉันใช้สิ่งนี้โดยเฉพาะในบริบททางเรขาคณิต / เวลา * (2,3,4 Dim) * แต่อาจใช้ข้อมูลมิติที่สูงขึ้นในอนาคต ฉันกำลังมองหาความแตกต่างเกี่ยวกับ: API, ความเร็ว, การใช้หน่วยความจำ, ความกว้าง / ความสมบูรณ์, ความแคบ / ความจำเพาะ, ความสามารถในการขยายและ / หรือวุฒิภาวะ / ความมั่นคง ปรับปรุง ฉันลงเอยด้วยการใช้ Eigen3 ซึ่งฉันมีความสุขมาก

9
เวกเตอร์แถวหรือคอลัมน์แบบโคลนนิ่ง
บางครั้งมันมีประโยชน์ในการ "โคลน" เวกเตอร์แถวหรือคอลัมน์กับเมทริกซ์ โดยการโคลนฉันหมายถึงการแปลงเวกเตอร์แถวเช่น [1,2,3] กลายเป็นเมทริกซ์ [[1,2,3] [1,2,3] [1,2,3] ] หรือเวกเตอร์คอลัมน์เช่น [1 2 3 ] เข้าไป [[1,1,1] [2,2,2] [3,3,3] ] ใน matlab หรือระดับแปดเสียงทำได้ง่ายมาก: x = [1,2,3] a = ones(3,1) * x a = 1 2 3 1 2 3 1 2 3 b = (x') * ones(1,3) b = 1 …

10
คณิตศาสตร์ - การจับคู่ตัวเลข
ฉันจะจับคู่ตัวเลขเชิงเส้นระหว่าง a และ b เพื่อไประหว่าง c และ d ได้อย่างไร นั่นคือฉันต้องการให้ตัวเลขระหว่าง 2 ถึง 6 แมปกับตัวเลขระหว่าง 10 ถึง 20 ... แต่ฉันต้องการกรณีทั่วไป สมองของฉันถูกทอด

2
ขั้นตอนวิธีการเลี้ยงค็อกเทล SVD การใช้งาน ... ในบรรทัดเดียวของรหัส?
ในสไลด์ภายในการบรรยายเบื้องต้นเกี่ยวกับแมชชีนเลิร์นนิงโดย Andrew Ng จาก Stanford ที่ Coursera เขาได้ให้คำตอบหนึ่งบรรทัดต่อไปนี้สำหรับปัญหางานเลี้ยงค็อกเทลเนื่องจากแหล่งที่มาของเสียงถูกบันทึกโดยไมโครโฟนสองตัวที่แยกกัน [W,s,v]=svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x'); ที่ด้านล่างของสไลด์คือ "แหล่งที่มา: Sam Roweis, Yair Weiss, Eero Simoncelli" และที่ด้านล่างของสไลด์ก่อนหน้าคือ "คลิปเสียงเอื้อเฟื้อโดย Te-Won Lee" ในวิดีโอศาสตราจารย์ Ng พูดว่า "ดังนั้นคุณอาจมองไปที่การเรียนรู้ที่ไม่มีผู้ดูแลเช่นนี้และถามว่า 'การใช้สิ่งนี้ซับซ้อนแค่ไหน?' ดูเหมือนว่าในการสร้างแอปพลิเคชันนี้ดูเหมือนว่าจะทำการประมวลผลเสียงนี้คุณจะต้องเขียนโค้ดจำนวนมากหรืออาจเชื่อมโยงไปยังไลบรารี C ++ หรือ Java จำนวนมากที่ประมวลผลเสียงดูเหมือนว่ามันจะเป็นจริงๆ โปรแกรมที่ซับซ้อนในการทำเสียงนี้: แยกเสียงออกไปและอื่น ๆ ปรากฎว่าอัลกอริทึมทำสิ่งที่คุณเพิ่งได้ยินซึ่งสามารถทำได้โดยใช้โค้ดเพียงบรรทัดเดียว ... แสดงไว้ที่นี่นักวิจัยใช้เวลานาน เพื่อสร้างโค้ดบรรทัดนี้ดังนั้นฉันไม่ได้บอกว่านี่เป็นปัญหาที่ง่าย แต่ปรากฎว่าเมื่อคุณใช้สภาพแวดล้อมการเขียนโปรแกรมที่เหมาะสมอัลกอริทึมการเรียนรู้จำนวนมากจะเป็นโปรแกรมสั้น ๆ จริงๆ " ผลลัพธ์เสียงแยกที่เล่นในการบรรยายวิดีโอนั้นไม่สมบูรณ์แบบ แต่ในความคิดของฉันมันยอดเยี่ยมมาก ใครมีข้อมูลเชิงลึกว่าโค้ดหนึ่งบรรทัดทำงานได้ดีเพียงใด โดยเฉพาะอย่างยิ่งมีใครทราบข้อมูลอ้างอิงที่อธิบายการทำงานของ Te-Won Lee, Sam …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.