八度函数 wavread 无法打开 wav 文件

octave function wavread cannot open wav file

我正在尝试使用 Octave 将 .wav 文件读入向量数组以进行其他分析,但是当我尝试 运行 脚本时,Octave 无法打开文件。

密码是:

[S,fs] = wavread('snare.wav');
plot(S);

在 运行 运行脚本时,我收到以下错误:

error: audioinfo: failed to open file snare.wav
wavread at line 91 column 8
analysis_1 at line 1 column 7

我有 'snare.wav' 文件与脚本文件 'analysis_1.m' 在同一目录中,因此编译器应该能够找到 .wav 文件。只是octave打不开文件。

我 运行正在 ubuntu 使用 Dell XPS。

如有任何帮助,我们将不胜感激。我应该尝试重新安装 Octave 吗?

感谢社区

文件snare.wav是否与文件analysis_1.m在同一个目录下并不重要。重要的一点是,wave 文件在 "current directory" 中,当用 'snare.wav' 调用 waveread 时。如果您在脚本中使用 cd 更改目录,或者使用实际路径调用脚本和函数或通过 addpath 添加它们,这一点很重要。我将向您展示最后一个作为示例。

考虑以下结构:

.
└── foo
    ├── bar.m
    └── myfile

文件bar.m只包含stat myfile

如果您现在使用 cd 导航到 foo 并调用 bar,您将得到结果

octave:1> bar
ans =

  scalar structure containing the fields:

    dev =  2065
    ino =  5672946
    mode =  33188
    modestr = -rw-r--r-- 
    nlink =  1
    uid =  1000
    gid =  1000
    rdev = 0
    size =  6
    atime =    1.5196e+09
    mtime =    1.5196e+09
    ctime =    1.5196e+09
    blksize = 0
    blocks =  8

但是,如果您使用 addpath 并且您在 foo:

之外
octave:1> addpath ("foo")
octave:2> bar
ans = [](0x0)

找不到文件。

所以要调试您的代码,只需在 waveread 之前直接添加 pwdls 并检查它们是否符合您的期望或添加 keyboard 并从此

进行调试