将结构值提取到名为字段的变量中

时间:2017-06-05 12:41:09

标签: matlab

我有一个包含5个字段的1x1 Matlab结构(' a',' b',' c',' d',& #39; E&#39)。每个字段都包含某种数据(这对我的问题并不重要)我希望从结构中提取每个值并将其分配给名为字段的变量。是否有代码可以做到这一点?

3 个答案:

答案 0 :(得分:4)

假设s是您的结构

cellfun(@(x) assignin('base', x, s.(x)), fieldnames(s));

但是,我没有看到gnovice已经提到过的一个很好的用例。

答案 1 :(得分:3)

虽然将数据整齐地存储在结构中时,将数据传播到一堆变量通常不是 最佳实践,但是将结构字段移动到不会变形的变量的简单方法; t要求硬编码您的字段/变量名称将使用saveload命令,如下所示:

WebElement link= driver.findElement(By.xpath("xpath of link"));
((JavascriptExecutor)driver).executeScript("window.scrollTo(0,"+link.getLocation().x+")");
link.click();

亲:这非常简单,适用于任何结构。 Con:它涉及将数据移入和移出文件。

答案 2 :(得分:1)

如果您知道要创建的变量是什么,那么您可以编写(假设s是您的结构):

C = struct2cell(s);
[a,b,c,d,e] = C{:};

否则,您需要在程序运行时创建未声明的新变量(使用@Vahe-Tshitoyan answer中的assignin命令),这是一个坏主意。