我有一个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''
有没有人知道为什么它不起作用以及我如何解决它?
答案 0 :(得分:2)
检查load
功能的documentation:
S = load(___)
使用任何输入参数将数据加载到S
以前的语法组。
如果filename是MAT文件,则
S
是结构数组。如果filename是ASCII文件,则
S
是双精度数组 包含文件中的数据。
因此b
是一种结构,并且在评论中建议您需要以abs(b.a_fft)
的形式访问数据。
答案 1 :(得分: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);