我想把它们转换成.csv格式。请问有人可以告诉我如何转换并创建.csv文件吗?
谢谢!
假设网站上的.mat
文件已经可用。在Matlab的命令行窗口中,您可以写出如下代码:
load('C:\Users\YourUserName\Downloads\mnist_all.mat');
加载.mat
文件,结果应该是一组矩阵test0
、test1
、...、train0
、train1
等在您的工作区中创建,并且您希望它们保存为CSV文件。由于它们的大小不同,您需要保存每个变量一个CSV文件,例如(也可以在命令窗口中执行):
csvwrite('C:\Users\YourUserName\Downloads\mnist_test0.csv', test0);
对于每个变量重复执行该命令,并且不要忘记更改输出文件的名称以避免覆盖。
我曾遇到类似的问题。需要将一系列包含两列数字数据的.mat文件转换为标准数据文件(ASCII文本)。请注意,我并不经常使用csv,但是可以通过使用csvwrite代替标准save来适应所有内容。
使用Octave 4.2.1 ....
load myfile.mat
LI = [L, I] ## L and I are column vectors representing my data
save myfile.txt LI
octave mat2dat.m
从命令行运行它,这样您可以看到它的运行过程。# 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
我没有Matlab许可证,所以我在Windows 10上安装了GNU Octave 4.2.1(2017)(感谢John W.Eaton和其他人)。使用csvwrite时我并不完全成功,因此我使用了以下解决方法。(顺便说一下,我在Octave领域完全不称职。csvwrite对于简单的数据结构有效。)
在命令窗口中,我使用了以下两个命令:
load myfile.mat
save("-text","myfile.txt","variablename")
当“myfile.mat”被加载时,数据向量的变量名将在工作区窗口中显示。这是在保存命令中使用的名称。有些.mat文件会加载多个数据结构。
“-text”选项是默认选项,因此您可能不需要在命令中包含此选项。
输出文件以文本格式列出.mat文件内容作为单列(可能是连续变量)。使用文本编辑器轻松地将此数据调整为原始矩阵结构,以供您使用任何您熟悉的应用程序。