我需要创建一个傅立叶矩阵,以便将其应用于一个巨大的矩阵,我需要使用spalloc将其定义为稀疏矩阵。我试过了:
F=dftmtx(N);但是N太大了,所以我无法创建它。有没有办法解决这个问题?谢谢你的帮助!
发布于 2015-12-31 01:37:32
对于每一列,您可以通过省略将乘以零的条目来形成简化的DFT矩阵。就像这样
X = my_matrix;
c = column_index;
x = X(:,c);
N = length(x);
inds = find(x);
F = exp( -1j * 2*pi/N * (0:N-1)' * (inds-1) );
Xdft(:,c) = F * x(inds);除非输入矩阵中的零不会逐列更改,否则您必须迭代列。然而,以上这些在我看来仍然是愚蠢的。我只需要一次完成一列,并使用fft()。
https://stackoverflow.com/questions/34533655
复制相似问题