我有以下代码片段将.wav输入转换为ascii .txt输出。 如何修改此代码以转换给定目录中的每个.wav文件,然后输出每个.txt文件以匹配每个唯一的输入文件名?

[data, fs] = audioread('waves/sampleInput.wav');
save 'sampleOutput.txt' data -ASCII

#1楼 票数:3 已采纳

这样的问题的关键是dir 命令 您可以尝试在如下结构中使用它:

dir_in = 'myfolder'; % set directory

filelist = dir(fullfile(dir_in, '*.wav')); % get file list

for i = 1 : length(filelist); % iterate over files in dir
    filename = filelist(i).name;
    disp(['Processing ' num2str(i) '/' num2str(length(filelist)) ': ' filename])
    [data, fs] = audioread(fullfile(dir_in,filename)); % Do your stuff for every file
    save(['sampleOutput_' filename(1:end-4) '.txt'],'data','-ascii') % add filename to output filename, but without '.wav'
end

我相信输出将位于当前的工作目录中。

注意:我认为使用fullfile来构建路径是一个好习惯,因为这会自动选择正确的文件分隔符(Windows: \\ vs. UNIX: / ),这意味着此代码是可移植的。

  ask by MrFarnham translate from so

未解决问题?本站智能推荐:

1回复

将函数应用于文件夹中不同格式的文件

我有一个文件夹,里面装满了文件。 每个文件的最左列是日期。 有些文件有yyyymmdd日期,有些文件有mm/dd/yyyy日期。 我想将函数minutebars1()应用于yyyymmdd类型,将函数minutebars2()应用于mm/dd/yyyy类型。 我尝试使用if语句执行此操作
2回复

Matlab程序来转换文件夹中的文件没有迭代

“保存”中似乎包含一个问题,该问题阻止该程序正确迭代每个文件并创建输出。 目标是将一个充满.wav文件的文件夹并将其全部转换为.dat或ascii .txt ... 有任何想法吗?
1回复

通过文件夹运行Matlab代码

我有以下代码,而不是一次加载一个图像,我想遍历文件夹(此代码中有缺陷的文件夹)中的每个图像。 我希望输出是一个包含每个输入图像的'G'值的数组。 我不太确定该怎么做-所以任何观点都值得赞赏。 非常感谢!
1回复

Matlab,文件夹中的高级循环和应用函数

我编写了一个代码来分析视频文件,然后在图表上绘制数据,然后将此图保存到excel和jpg中。 但我的问题是我有超过200个视频在20个文件夹中进行分析, 所以我需要自动化这段代码来循环文件夹内部并分析每个* .avi文件 ..所以任何想法或建议 非常感谢您的帮助 我需要知道如
2回复

将函数应用于Matlab中矩阵的每个元素[重复]

这个问题已经在这里有了答案: 调用数组中所有元素的函数 4个答案 我有一个480x640大小的矩阵(假设A )。 我想另一矩阵( B相同尺寸的),其中在每个元件B是exp()中对应元件的A 。 除了常规的for循环以外,还有什么别的优雅的方法吗?
1回复

将函数应用于Matlab中的每个子矩阵

我希望使以下代码更快: 我一直在研究arrayfun函数。 我想这可以通过转换为单元格来实现,但我宁愿避免这种情况以提高性能(也无法使其工作)。
1回复

将功能应用于Matlab中单元的每个子单元吗?

我在Matlab中有一个尺寸为mx1的单元格C ,例如m=3 然后我有一个函数g编写在单独的m文件中 可以接收任意子电池C{i}的C和使用一些其它参数a和b给出的向量D维的fx1 。 我想将函数g应用于C每个子单元,并在不使用循环的情况下将获得的fx1向量组装在矩阵fxm 。 我已
3回复

Matlab:如何将向量应用于细胞中的每个向量?

如果V = [3 11 20 31 40]并且A=[1 2 3] ,我们可以做V(A(:))=[3 11 20] 。 如果A是一个单元格,我该怎么办? 如果A={[1 2 3],[2 5],[3 5]} ,我想拥有{[3 11 20],[11 40],[20 40]}