在Matlab的工作区窗口\工作区面板

时间:2015-06-02 06:36:44

标签: matlab

我希望每次运行我拥有的特定脚本时都会记录,特别是变量列表及其值。

Matlab有函数who用于获取变量名称,而whos用于获取更多信息,但我真正想要的只是保存我在“工作区面板”中已有的信息这是在屏幕上可见的,其中写入了各种变量的名称和值(有时它实际上是值,有时提到大小和类)。如果您不明白我的意思,只需在命令提示符下键入workspace

我知道我可以将整个工作区保存为.mat文件(我这样做),但我只想要一个带有该信息的小文本文件,所以我不需要加载matlab来查看该文件中的内容。 / p>

您是否知道允许访问该信息的简单方法?

2 个答案:

答案 0 :(得分:1)

您可以使用diary命令将信息保存在.txt文件中:

更新回答

您可以使用whos whitin的输出,使用eval显示变量的值并将其存储在日记文件中。

更新了代码

clear all

a=peaks;
b=magic(4);
c=size(b);
d=length(a);
v_str.n=1

diary('w.txt')
whos
zzz=whos;
for i=1:length(zzz)
   eval([zzz(i).name])
end
diary off

希望这有帮助。

答案 1 :(得分:1)

要添加@il_raffa答案,可能另一种显示变量值的解决方案就像它们在工作区浏览器中显示一样,是使用workspacefunc('getshortvalue', eval(varname))而不是直接调用eval(varname)

v = whos();
for idx = 1:length(v)
    name = v(idx).name;
    value = workspacefunc('getshortvalue', eval(name));
    fprintf(1, '%s\t\t\t\t\t\t%s\n', name, value); 
end