请以提升运行速度为目的简化以下代码:for i=1:N t1=unifrnd(0.80*p0_a,0.88*p0_a,H,W); t2=unifrnd(0.88*p0_a,0.96*p0_a,H,W); t3=unifrnd(0.96*p0_a,1.04*p0_a,H,W); t4=unifrnd(1.04*p0_a,1.12*p0_a,H,W); t5=unifrnd(1.12*p0_a,1.20*p0_a,H,W); fare0(:,:,i)=[t1;t2;t3;t4;t5]; end
时间: 2024-02-12 15:09:57 浏览: 59
unifrnd_demo_DEMO_随机数unifrnd函数_
可以使用矩阵运算和向量化来简化代码,提高运行速度。
代码如下:
```
t1=unifrnd(0.80*p0_a,0.88*p0_a,H,W);
t2=unifrnd(0.88*p0_a,0.96*p0_a,H,W);
t3=unifrnd(0.96*p0_a,1.04*p0_a,H,W);
t4=unifrnd(1.04*p0_a,1.12*p0_a,H,W);
t5=unifrnd(1.12*p0_a,1.20*p0_a,H,W);
fare0 = cat(3, t1, t2, t3, t4, t5);
fare0 = repmat(fare0, [1, 1, N]);
```
这里使用了 cat 和 repmat 函数来进行矩阵拼接和复制,从而避免了循环。
阅读全文