小编B. *_*mas的帖子

如何使用查找有效地替换函数?

我试图提高在大型数据集上运行的代码的速度.我需要执行该功能out = sinc(x),其中x2048 -by- 37499双打矩阵.这是非常昂贵的,并且是我的程序的瓶颈(即使在GPU上计算).

我正在寻找任何可以提高此操作速度的解决方案.我希望这可以通过预先计算矢量来实现,LookUp = sinc(y)其中矢量y是矢量y = min(min(x)):dy:max(max(x)),即跨越整个预期x元素范围的矢量.

如何有效地sinc(x)从该LookUp向量生成近似值?

我需要避免生成三维数组,因为这会消耗比我可用的内存更多的内存.

以下是interp1解决方案的测试:

a = -15;
b = 15;
rands = (b-a).*rand(1024,37499) + a;

sincx = -15:0.000005:15;
sincy = sinc(sincx);

tic
res1 = interp1(sincx,sincy,rands);
toc

tic
res2 = sinc(rands);
toc'

sincx = gpuArray(sincx);
sincy = gpuArray(sincy);
r = gpuArray(rands);

tic
r = interp1(sincx,sincy,r);
toc

r = gpuArray(rands);

tic
r = sinc(r);
toc …
Run Code Online (Sandbox Code Playgroud)

matlab vector matrix

6
推荐指数
1
解决办法
208
查看次数

如何在MATLAB中找到每个3D数组切片的最大值和位置?

计算3D阵列的每个"切片"的最大值及其相应的索引的最快方法是什么?

arrays matlab max

3
推荐指数
1
解决办法
524
查看次数

标签 统计

matlab ×2

arrays ×1

matrix ×1

max ×1

vector ×1