matlab除法使用broadcast机制要小心
生活随笔
收集整理的這篇文章主要介紹了
matlab除法使用broadcast机制要小心
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?
習(xí)慣了python里的broadcast機制后再來使用matlab要小心。特別是除法。在python中聲明一個[2,10]的矩陣a除以[1,10]的矩陣b,后者會在長度為1的維度上進(jìn)行broadcast,復(fù)制到滿足按元素除法的長度,最后b變成[2,10],并得到一個[2,10]的結(jié)果。如下圖所示:
>>> a=np.ones((2,10)) >>> a array([[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.]]) >>> b=np.ones((1,10)) >>> a/b array([[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.]])?
對于matlab而言則有所不同。直接使用/默認(rèn)使用矩陣除法。必須使用./才能引起broadcast機制。如下圖所示:
>> a=ones(2,10),b=ones(1,10),a/ba =1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1b =1 1 1 1 1 1 1 1 1 1ans =1.00001.0000>> a=ones(2,10),b=ones(1,10),a./ba =1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1b =1 1 1 1 1 1 1 1 1 1ans =1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1?
對于加、減、乘運算則無此問題。
?
搬運一個更詳細(xì)的介紹:
https://blog.csdn.net/lanchunhui/article/details/50158975
總結(jié)
以上是生活随笔為你收集整理的matlab除法使用broadcast机制要小心的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 游戏服务器红点系统,Unity简易的红点
- 下一篇: matlab多项式除法降阶,二进制多项式