julia常用矩阵函数_julia 中内建函数与嵌套循环的效率

Introduction

前面做宽动态成像(前面的文章)时遇到了运行瓶颈,主要是在计算量上,要计算的式子如下:

\[\begin{eqnarray}

I_{out}(x,y)=\sum_{i=1}^{n}\sum_{j=1}^{m}B_{ij}(x,y)U(x-rx_{ij},y-ry_{ij})I_{d_{ij}}(x,y)

\end{eqnarray}

\]

而Bij(x,y)的计算也有求和运算:

\[\begin{eqnarray}

B_{ij}(x,y)=\frac{e^{- \left( \frac{ (x-rx_{ij})^2 }{2\sigma^2_x} + \frac{ (y-ry_{ij})^2 }{2\sigma^2_y} \right) }}

{\sum_{p=1}^{m}\sum_{q=1}^{n}e^{- \left( \frac{ (x-rx_{pq})^2 }{2\sigma^2_x} + \frac{ (y-ry_{pq})^2 }{2\sigma^2_y} \right) } }

\end{eqnarray}

\]

做实验的时候设置m=20,n=15,H,W分别为597,397,结果一循环就回不来了。。。(对julia的循环优化也是充满信心)

后面试了下用空间换效率的办法:增加一维存储m×n个的矩阵,然后用内置求和,发现提升明显。。。

...

BM=zeros(H,W,M*N)*0.

X=collect(1:W)'.-zeros(H)

Y=collect(1:H).-zeros(W)'

for pn=1:N</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值