如果内存足够大,试试以下代码。
temp1 = repmat(xy_2d, [1 1 720000]);
temp2 = permute(repmat(z_2d(:)*ones(1, 8192), [1, 1, 8192]), [3 2 1]);
u2 = exp(sum(i*sqrt(temp1 - temp2), 3));
【 在 novicer (novicer) 的大作中提到: 】
: 标 题: Re: 请问这个程序为什么越来越慢?
: 发信站: 水木社区 (Thu Sep 9 14:54:07 2021), 站内
:
: 如果内存足够大,能不能把后一个矩阵变成(8192*8192) * (800*900)的二维矩阵,从而不用for循环?
:
:
: 【 在 shaolimin 的大作中提到: 】
: : 2维变1维是为了减少一个循环。
: : 循环里面的i确实可以提到循环外。
: :
:
: --
:
: ※ 来源:·水木社区
http://www.mysmth.net·[FROM: 49.66.217.*]
--
FROM 202.141.160.*