0

我有一个 FFT,我想将其保存到 .mat 文件中,然后从该 .mat 文件中读取它。我想将我加载的数据用于一个部门。这是我的代码

    save ('file_fft','a_fft');
    b = load ('file_fft'); 
    c = abs (d_fft) ./ abs (b);

在我的命令窗口中,我看到了

   b = file_fft [4000 * 1 double]. 

然后我收到错误消息

    'Undefined function 'abs' for input arguments of type 'struct''

我在删除abs后尝试过。我收到了这个错误

   'Undefined function 'rdivide' for input arguments of type 'struct''

有谁知道它为什么不起作用以及我该如何解决?

4

2 回答 2

2

检查该功能的文档load

S = load(___)S使用前一个语法组中的任何输入参数将数据加载到中。

  • 如果 filename 是一个 MAT 文件,那么S是一个结构体数组。

  • 如果 filename 是一个 ASCII 文件,那么S是一个包含文件数据的双精度数组。

结构也是如此b,正如评论中所建议的,您需要以abs(b.a_fft).

于 2014-09-24T11:45:05.617 回答
1

问题是 load() 已经创建了 .mat 文件内的文件结构。当您file_fft使用负载分配时,它会创建一个结构。

从 load() 的文档中:

S = load( _ ) 使用前面语法组中的任何输入参数将数据加载到 S 中。如果 filename 是 MAT 文件,则 S 是结构体数组。

编辑

我被狙击了:-P

这是代码的另一个工作示例:

save ('file_fft','a_fft');
load ('file_fft'); 
c = abs (d_fft) ./ abs (file_fft);
于 2014-09-24T11:46:43.633 回答