Matlab load and save 函数

matlab中的save与load函数用save函数,可以将工作空间的变量保存成txt文件或mat文件等。用load函数,可以将数据读入到matlab的工作空间中。比如:

[plain] view plain copy

  1. load peng.mat  

就是将peng.mat中的所有变量读入matlab工作空间中,当然我们也可以选择读入哪个变量,具体见帮助文件。还有一个问题是在mat文件中保存一个变量,默认读入matlab中后,还是保存时用的名字,但是,想用一个新名字代替,怎么办?具体用程序描述如下:

[plain] view plain copy

  1. save peng.mat p  


那么load peng.mat之后,就可以在工作空间中看到p变量了。可是,如果用load读入之后,我不想用变量名p了,怎么办。具体解决办法:

[plain] view plain copy

  1. s=load('peng.mat');  
  2. sc=struct2cell(s);  
  3. t=cell2mat(sc);  


那么,读入的struct类型变量就被转换成cell类型数据,然后再转换为double类型的数据。

[plain] view plain copy

  1. save  XXX;  


是将当前文件中的全部变量存起来,得到一个名为XXX.mat的文件。如果只想保存当前文件中的某个或某几个变量,则用:

[plain] view plain copy

  1. save('filename','var1','var2',...);  


由于通常当前文件中只有很少几个结论性的变量需要保存,所以为了清晰,不妨一个变量保存一个.mat文件,并且文件名就用变量名,如:

[plain] view plain copy

  1. save('var1.mat',var1);  
  2. save('var2.mat',var2);  


用load('XXX.mat');可以将以前已保存的XXX.mat文件加载到当前文件中,并使用其中的变量。但可能存在如下问题:如果XXX.mat中有与当前文件中同名的变量var,那么载入的变量将覆盖原有变量。解决办法是,用

[plain] view plain copy

  1. XXX_ld=load('XXX.mat');  


取代上面语句,这样就只引入一个XXXld结构体。而XXX.mat中保存的所有变量都作为XXXld的属性,因此不会发生覆盖。于是,可以用XXX_ld.var来使用变量var,或者为其改名:

[plain] view plain copy

  1. var2=XXX_ld.var;  


尽管这样增加了一次拷贝,但换来了安全性。

猜你喜欢

转载自blog.csdn.net/Leo_whj/article/details/83035645