Matlab dwt跨指定维度

  • 本文关键字:dwt Matlab matlab dwt
  • 更新时间 :
  • 英文 :


我在Matlab中有一个大小为65536 x 192的数据集Sig。如果我想取一维fft沿着第二维,我可以使用for循环:

%pre-allocate ect..
for i=1:65536
   F(i,:) = fft(Sig(i,:));
end

或者我可以指定维度而不使用for循环:

F = fft(Sig,[],2);

对我的数据集来说快了20倍。

我已经为离散小波变换(dwt)寻找类似的东西,但无法找到它。所以我想知道是否有人知道在Matlab中跨指定维度做dwt的方法?还是必须使用for循环?

在您的循环FFT示例中,似乎您在行上操作。Matlab使用列主顺序。这或许可以解释表现上的差异。如果对列进行操作,性能是否相同?如果这是正确的解释,您可以在循环中使用dwt

如果您确实需要性能,一个解决方案是按照您想要的方式执行自己的MEX调用C离散小波变换库。

我假设你正在使用小波工具箱中的函数:http://www.mathworks.co.uk/help/toolbox/wavelet/ref/dwt.html

文档似乎没有描述对数组的操作,所以可能不支持。如果它允许你输入一个数组,那么它将在第一个非单元素维度上操作,或者它将忽略形状并将其视为一个向量。

相关内容

  • 没有找到相关文章

最新更新