计算矩阵中每一列或每一行的 fft

Calculate fft for each column or row in matrix

我在使用 matlab 计算存储在矩阵中的信号的 fft 时遇到问题。我正在尝试为每一列计算 fft。

我正在尝试这样做:

 for k = 1: ncol
    y1(k)= fft(y(:,k));
 end

其中 y 是我的矩阵,ncol 是矩阵中的列数,但我仍然收到以下错误:

In an assignment  A(:) = B, the number of elements in A and B must be the same.

y1也应该是矩阵形式。信号的 fft 是系数数组

就这样做

y1 = fft(y);

它分别计算每一列,而且比使用 for 循环快得多。

为了回答你原来的问题,你必须这样做:

 for k = 1: ncol
    y1(:,k)= fft(y(:,k));
 end

您试图将整个列放入单个索引中,这就是您收到该错误消息的原因。您需要分配更多空间,以便可以存储整个列。