有类似的问题。需要将具有两列数字数据的一系列.mat文件转换为标准数据文件(ascii文本)。请注意,我实际上并没有使用csv,但这里的所有内容都可以通过使用csvwrite而不是标准保存进行修改。
使用倍频4.2.1 ....
load myfile.mat
LI = [L, I] ## L and I are column vectors representing my data
save myfile.txt LI
注意L和我似乎是由八度在我的原始数据文件中的两个向量选择默认的变量名。理想情况下,一个脚本可以用所有文件迭代。在我的目录中扩展名将是理想的,但是这完成了工作。它将数据保存为两个空格分隔的数据列。
***更新
下面的脚本在八度4.2.1一系列数据文件与.MAT扩展,是在同一个目录。它将迭代它们并将数据写入具有相同名称但扩展名为.dat的文本文件。请注意,这样做效率不高,因此如果您有大量文件或者文件太大,则可能需要一段时间才能运行。我建议你从命令行使用octave mat2dat.m来运行它,这样你才能真正看到它。
我不保证这会适用于您,但它确实适合我。我也不擅长Octave或Matlab,所以我相信有更好的解决方案。
# mat2dat.m
dirlist = glob("*.mat")
for i=1:length(dirlist)
filename = dirlist{i,1}
load(filename, "L", "I")
LI = [L,I]
tmpname = filename(1:length(filename)-3)
txtname = strcat(tmpname, 'dat')
save(txtname, "LI")
end