【问题标题】:MATLAB vectorization: extracting vector of struct fields from vector of structsMATLAB向量化:从结构向量中提取结构字段向量
【发布时间】:2015-04-22 13:53:28
【问题描述】:

我有一个结构体s 的向量S,每个结构体都有一个字段x

我想从S 中的每个结构中提取包含值x 的向量X

有没有办法通过矢量化来做到这一点?

例子:

s1.x = 42;
s2.x = 87;
s3.x = 24;

S = [s1, s2, s3];

我想得到:

X = [42, 87, 24]

【问题讨论】:

  • 类似X = [S.x] ?
  • @Benoit_11 太棒了,请将其作为答案提交,以便我接受。我试过S.x,但缺少封闭的方括号。
  • 好吧哈哈很高兴它成功了!然后我会添加更多细节:)

标签: matlab vector struct vectorization


【解决方案1】:

可以使用方括号将结构体x字段的内容连接起来,如下:

X = [S.x]

将与字段x 关联的所有数据放在一个数组中。

您还可以使用cat 函数进行水平连接:

X = cat(2,S.x)

【讨论】:

  • 我会厚着脸皮问你是否也知道如何做相反的事情,即给定X,分别在S中设置所有s.x。我试过[S.x] = X,但我得到“输出参数太多”。
  • 我认为函数deal 是你需要的:S.x = deal(X)。是这样吗?
猜你喜欢
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-15
  • 1970-01-01
  • 1970-01-01
  • 2014-04-03
  • 1970-01-01
相关资源
最近更新 更多