在利用MATLAB进行数据处理和科研学习的时候经常需要将数据保存下来,软件本身有几种保存方式。由于经常忘记,所以这里总结和整理下来,一是提醒自己,二是若能对他人有一丁点帮助,那也是极好的。
1.主要的几种保存数据的方式
1.1 CTR+S
这个保存方式在word等软件中经常使用,在MATLAB中也不例外。该方式也是一种快捷键组合,其作用和通过菜单栏的保存选项一致。这种保存方式我在两个场景中会用到。
1.1.1 保存代码
当我们正在写代码时,鼠标光标位于编辑区(就是写代码的窗口),按下CTR+S则会保存代码。这是在写代码是最常用的操作,一定要保存好代码。
1.1.2 保存工作区数据
当我们运行完数据,如果我们把光标放到“当前路径”、“命令窗口”、“工作空间”这三个地方时,如果我们按下CTR+S,MATLAB则会保存我们刚刚经过运行产生的在“工作空间”的所有数据,保存后会生成一个“.mat”文件,其中包括在“工作空间”出现的所有数据。
此外,当我们进行图像化显示,产生一个figure窗口的时候,将光标放在figure窗口,按下CTR+S,则会触发保存该figure窗口的指令。
1.2 save 和save as
1.2.1 save
save命令应该是保存数据比较常用的一种方式。其语法在MATLAB帮助文档中有这样一些描述:
save(filename)
save(filename,variables)
save(filename,variables,fmt)
save(filename,variables,version)
save(filename,variables,version,‘-nocompression’)
save(filename,variables,‘-append’)
save(filename,variables,‘-append’,‘-nocompression’)
save filename
注:
save(filename):这种方式和上述提到的在“当前路径”、“命令窗口”、“工作空间”这三个地方按CTR+S产生的效果一致,均是保存在工作空间的所有数据变量。
save(filename,variables):这种方式相对于前一个语句的保存针对性更强一些,可以将variables所代表的数据(不论什么格式)保存成“.mat”的格式。
其中save(filename,variables,fmt)这种格式是我最常用的一种方式,这种方式可以将我们经过运行产生在“工作空间”中某个变量的数据保存成我们想要的格式。
1.2.2 saveas 和 savefig
save as语句主要用于对产生的figure图窗进行保存。
saveas(fig,filename)
saveas(fig,filename,formattype)
举一个MATLAB帮助文档的例子:
x = [2 4 7 2 4 5 2 5 1 4];
bar(x);
saveas(gcf,‘Barchart.png’)
提到saveas,还要提到一个语句就是savefig。它有这样一些语法:
savefig(filename)
savefig(H,filename)
savefig(H,filename,‘compact’)
这个语句也是针对图窗的保存,可以将多个图窗保存在一个文件里面,例如帮助文档里面的示例:
h(1) = figure;
z = peaks;
surf(z)
h(2) = figure;
plot(z)
savefig(h,‘TwoFiguresFile.fig’)
close(h)
如果要打开保存的两个图窗,则需要利用openfig的操作。
figs = openfig(‘TwoFiguresFile.fig’);
这个功能和在fig图像的菜单栏点击文件(File)->保存(save)或者保存为(save as)的功能是一致的。我一般会选择在图窗点击保存。
1.3 imwrite写数据
做图像处理经常会用到这个保存的操作,imwrite的功能就是将指定的图像数据写入到指定的文件,它的语法有这样几种形式:
imwrite(A,filename)
imwrite(A,map,filename)
imwrite(,fmt)
imwrite(,Name,Value)
这个操作很简单,但是很常用。不仅可以写入普通的图像数据,还能将多个图像写入一个TIFF文件,也可以将多个图像文件连续显示以生成一个GIF动画。
保存普通数据的例子:
A = rand(50);
imwrite(A,‘myGray.png’)
2.总结
本文主要总结了几种在MATLAB中经常用到的保存数据的语句,主要包括CTR+S,save,saveas,savefig,imwrite。
记录在此主要用于自己查找,以及可能为别人带来一点便利。