以提升速度为目的简化以下代码: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-13 11:01:16 浏览: 97
unifrnd_demo_DEMO_随机数unifrnd函数_
可以使用矩阵运算来简化代码,避免使用 for 循环。具体实现如下:
```
t1 = unifrnd(0.80*p0_a,0.88*p0_a,H,W,N);
t2 = unifrnd(0.88*p0_a,0.96*p0_a,H,W,N);
t3 = unifrnd(0.96*p0_a,1.04*p0_a,H,W,N);
t4 = unifrnd(1.04*p0_a,1.12*p0_a,H,W,N);
t5 = unifrnd(1.12*p0_a,1.20*p0_a,H,W,N);
fare0 = cat(3, t1, t2, t3, t4, t5);
```
其中,使用了 `cat` 函数来将 `t1` 到 `t5` 沿第三个维度拼接成一个三维数组 `fare0`。这样,就不需要使用 for 循环来逐个生成 `fare0` 的每个第三维的切片了。
阅读全文