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

时间:2018-09-08 12:31:19

标签: matlab matrix fft

我在使用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.

2 个答案:

答案 0 :(得分:4)

只需这样做

y1 = fft(y);

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

要回答您的原始问题,您必须这样做:

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

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

答案 1 :(得分:0)

y1也应采用矩阵形式。信号的fft是一个系数数组