文件交换的选择

我们最好的用户提交

Struct2Vars

肖恩本周的选择struct2vars通过马修Eicholtz

我最近被一个同事问:“怎么走的所有字段结构的变量的?”。一般来说,尽管它是非常可行的assignin,“噗”一个变量一个坏主意,因为你可能会覆盖现有的变量和语言执行引擎可能会失去它的一些效率。这就是为什么我喜欢马修的提交。它给你选择回到特定的输出函数,或者避免的最佳实践和噗到工作区中警告如果是覆盖。

这是在使用:

clearvars x = 1;s =结构(“一个”π,“b”实验(1)“x”2);谁
类属性名称大小字节1 x1 552 struct x 1 x1 8双

现在,如果我想b回来

b = struct2vars(年代,{“b”});谁
类属性名称大小字节b 1 x1 8双s 1 x1 552 struct x 1 x1 8双

或者我希望所有的人:

struct2vars (s)
警告:以下变量调用者已经存在于工作区和将覆盖:b x
谁disp (“现在x是:”+ x)
类属性名称大小字节1 x1 8双b 1 x1 8双s 1 x1 552 struct x 1 x1 8双x: 2

你会看到我得到一个警告;现在x = 2,从结构。

其他地方你会经常看到这种类型的行为的负载命令。默认情况下,负载会噗的所有变量在MAT文件到您的工作区。

保存(“ExampleMATFile.mat”)clearvars谁
负载(“ExampleMATFile.mat”)谁
类属性名称大小字节1 x1 8双b 1 x1 8双s 1 x1 552 struct x 1 x1 8双

相反,我总是试图拿回一个结构然后抓住我关心的字段。

clearvars谁M =负载(“ExampleMATFile.mat”)
3.1416 M =结构体字段:a: b: 2.7183年代:[1×1 struct] x: 2

评论

试一试,让我们知道你的想法在这里或者离开评论马太福音。

发表与MATLAB®R2019a

|
  • 打印

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。