5
ใน Matlab ควรใช้ bsxfun เมื่อใด
คำถามของฉัน:ฉันสังเกตเห็นว่าคำตอบที่ดีมากมายสำหรับคำถาม Matlab ใน SO มักใช้ฟังก์ชันbsxfunนี้ ทำไม? แรงจูงใจ:ในเอกสาร Matlab สำหรับbsxfunตัวอย่างต่อไปนี้มีให้: A = magic(5); A = bsxfun(@minus, A, mean(A)) แน่นอนเราสามารถดำเนินการเดียวกันโดยใช้: A = A - (ones(size(A, 1), 1) * mean(A)); และในความเป็นจริงการทดสอบความเร็วอย่างง่ายแสดงให้เห็นว่าวิธีที่สองเร็วขึ้นประมาณ 20% ทำไมต้องใช้วิธีแรก? ฉันคาดเดาว่ามีบางสถานการณ์ที่การใช้bsxfunจะเร็วกว่าวิธีการ "ด้วยตนเอง" มาก ฉันสนใจที่จะเห็นตัวอย่างของสถานการณ์ดังกล่าวและคำอธิบายว่าเหตุใดจึงเร็วกว่า นอกจากนี้องค์ประกอบสุดท้ายของคำถามนี้อีกครั้งจากเอกสาร Matlab สำหรับbsxfun: "C = bsxfun (fun, A, B) ใช้การดำเนินการไบนารีองค์ประกอบต่อองค์ประกอบที่ระบุโดยฟังก์ชันจับ fun กับอาร์เรย์ A และ B โดยใช้ …