如何在matlab里保存以及打开变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在matlab里保存以及打开变量相关的知识,希望对你有一定的参考价值。
本人首先通过符号运算得到了一个sym格式矩阵变量的结果,由于运算时间超长(超过12小时),结果超长(超出显示范围,无法复制粘贴),故希望将这个变量保存下来,往后就不再进行计算了而是直接在主程序中导入。我做了如下尝试:
尝试一:在workspace的变量f上点右键将其保存为一个.mat格式的文档,文件名f.m。然后我clear clc掉全部数据,尝试open('f.mat'),结果返回的结果如下:
ans =
f: [50x3 sym]
然后我键入f,提示undefined,说明并未实际导入这个变量。然而,我直接鼠标点击主界面上的file-open后,键入f发现f的值显示出来了(其效果居然和open命令不同!),但是f并未出现在workspace栏的变量中,我认为是应该出现在那里的,所以感到奇怪。
尝试二:在主界面上鼠标点击file-save workspace as,如此操作后,workspace里所有的变量都被保存下来了,之后也能够打开,但是这样会把所有在workspace的变量全打开,事实上我只想要一个f的值就够了。
如果我的两种尝试有某一种思路是正确的,请修改指正;或者请直接告知正确做法。
两种方法都可以。
很显然,第一种方法加载进来的变量名是ans,这是一个结构体,f是其一个域。要访问f,使用ans.f即可。当然,更直接的做法是用load函数,而不是open。
对于后一种情况,同样可以用load函数,但不想加载其他变量的话,可以指定变量,例如(假设你的变量名是f):
load('f.mat','f') 参考技术A 用save可以保存变量。save data1 表示保存工作空间所有的变量到data1.mat中
save data2 m 表将工作空间的m变量保存到data2.mat中,如果工作空间没有m会报错。
save data3 m n p v 表示将工作空间中的 m n p v 四个变量保存到data3.mat中,如果工作空间没有这四个变量中的一个也会报错。
例如:
>> m=2
m =
2
>> n=rand(4)
n =
0.3804 0.5308 0.5688 0.1622
0.5678 0.7792 0.4694 0.7943
0.0759 0.9340 0.0119 0.3112
0.0540 0.1299 0.3371 0.5285
>> p='hello world'
p =
hello world
>> v=[23 22]
v =
23 22
>> save data1
>> save data2 m
>> save data3 m n p v
以后在需要这些变量时,只需要双击data1.mat(data2.mat data3.mat)即可。或者使用load data1.mat.
以上是关于如何在matlab里保存以及打开变量的主要内容,如果未能解决你的问题,请参考以下文章