【问题标题】:Save and load fft to .mat file将 fft 保存并加载到 .mat 文件
【发布时间】:2014-11-18 21:20:25
【问题描述】:

我有一个 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''

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

【问题讨论】:

  • 你能把最后一行换成c = abs (d_fft) ./ abs (b.file_fft);再试一次吗?

标签: matlab file fft complex-numbers mat-file


【解决方案1】:

检查documentation 中的load 函数:

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

  • 如果文件名是 MAT 文件,则 S 是结构体数组。

  • 如果文件名是 ASCII 文件,则 S 是双精度数组 包含文件中的数据。

所以b 是一个结构,正如评论中所建议的,您需要以abs(b.a_fft) 的身份访问数据。

【讨论】:

    【解决方案2】:

    问题在于 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);
    

    【讨论】:

      猜你喜欢
      • 2016-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多