Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
有没有一种快速的方法(即一行)来使用变量名作为结构字段来转储“在”结构中的变量集合? “加载”功能基本上可以做到这一点,但是保存并加载到临时文件似乎很丑陋。
例如: clear a = 'adsf' b = rand(10); x = var2struct(a,b) xa xb 或更好: x = var2struct(['a';'b']) 另外,相反(将字段值作为以字段命名的变量转储到当前作用域中)怎么办?: clear xa='asdf' xb=rand(10); dumpstruct(x) a b 另外,这是一个相关的新闻组线程 。 回答: 除了使用LOAD和SAVE之外,我没有已知的内置函数可以执行此操作。但是,您可以仅创建自己的函数,如下所示: function s = var2struct(varargin) names = arrayfun(@inputname,1:nargin,'UniformOutput',false); s = cell2struct(varargin,names,2); end function struct2var(s) cellfun(@(n,v) assignin('base',n,v),fieldnames(s),struct2cell(s)); end 在基本工作空间中,您可以像下面这样使用这些功能: a = 'adsf' b = rand(10); x = var2struct(a,b); clear ab struct2var(x); 几个注意事项:
更多&回答... |
![]() |
![]() |