我怎样才能从一个函数调用MATLAB的变量空间?

89(30天)
我试图做一个.mat文件在一个包含所有的变量functioin MALTAB工作区但是当我尝试从一个函数中使用 保存(“NAMEWORKSPACE”); 它保存所有变量的函数的工作区.mat文件,我不希望这样。
如何创建一个.mat文件与MATLAB的变量空间在一个函数?
请建议,
2的评论
阿尔贝托。
阿尔贝托。 2019年3月15日
我很抱歉的混乱。
我知道每个函数都有自己的工作空间 保存(“变量”); 将所有变量存储在工作区.mat文件。我想创建一个.mat文件从一个函数中不存储的所有变量函数的工作空间,而是它存储的所有变量出现在命令窗口旁边的工作区。

登录置评。

接受的答案

每•艾萨克森
每•艾萨克森 2019年3月15日
编辑:每•艾萨克森 2019年3月15日
你有充分的理由这样做?
提示:
函数save_base_workspace ()
evalin (“基地”,“拯救(“save_base_workspace。垫”);)
结束
7评论
Stephen23
Stephen23 2019年3月15日
@ 阿尔贝托。 :这是一个极其复杂的黑客修复严重MDF导入功能设计(设计缺陷:将直接导入到基本工作空间)。最简单的解决办法是避免这种情况首先,这可以通过使用不同的MDF平凡地做导入功能,有关更多信息,请参见我的答案。

登录置评。

更多的答案(2)

Bjorn Gustavsson
Bjorn Gustavsson 2019年3月15日
编辑:Bjorn Gustavsson 2019年3月15日
我想您可以构建与matlab函数 evalin 类似:
savename =“whatever.mat”;
savecmd = [“保存(”savename,“)”];
evalin (savecmd“基地”)
(片段不是测试…)
但这确实看起来像一个奇怪的想法,为了什么目的你需要这个吗?工作区有完全相同的变量调用该函数之前,当你到达save-attempt——为什么不保存变量在调用函数之前。如果断言在前面的句子是不正确的,因为你使用了大量的全局变量或依靠assignin,那么你最ceratainy让自己对未来的可怕的问题。
HTH

Stephen23
Stephen23 2019年3月15日
编辑:Stephen23 2019年3月15日
“我不似乎能够做它当我在一个函数和不知道名称的变量在运行程序之前。”
这是因为斯图尔特Garrity的提交 有缺陷的设计 ,因为它 神奇地创建编号的变量 在基本工作空间。这使得变量慢,复杂,难以通过编程方式访问:
你可以避免整个问题通过使用McGarrity艾琳的FEX提交,导入数据到一个输出变量:
简单地调用该函数内部工作区中你想要的地方,和你的原始问题:避免整个问题
数据= importMDF3 ()
4评论

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!